diff --git a/cpp/field.cpp b/cpp/field.cpp
index 2cbada82083a709798d49503b0394983ba0d639c..d761b0cf78dc17c855aa3b78d9d50903e689cddd 100644
--- a/cpp/field.cpp
+++ b/cpp/field.cpp
@@ -2401,7 +2401,6 @@ field<rnumber, be, fc> &field<rnumber, be, fc>::operator=(
     }
     else
     {
-        this->real_space_representation = false;
         // simple copy
         if (this->get_nx() == src.get_nx() &&
             this->get_ny() == src.get_ny() &&
@@ -2412,6 +2411,7 @@ field<rnumber, be, fc> &field<rnumber, be, fc>::operator=(
         // complicated resize
         else
         {
+            this->real_space_representation = false;
             int64_t slice_size = src.clayout->local_size / src.clayout->subsizes[0];
             // clean up
             std::fill_n(this->data,