diff --git a/src/Morton_shuffler.cpp b/src/Morton_shuffler.cpp
index 8542598e553b4ec2c422aff51ebb2e54db0a24aa..e8e6d992566cb27e6777918bed389cc60d816480 100644
--- a/src/Morton_shuffler.cpp
+++ b/src/Morton_shuffler.cpp
@@ -57,6 +57,7 @@ int Morton_shuffler::shuffle(
         float *a,
         const char *base_fname)
 {
+    // TODO: can this be done in-place?
     // shuffle into z order
     ptrdiff_t z, zz;
     int rid, zid;
diff --git a/src/field_descriptor.cpp b/src/field_descriptor.cpp
index 6c5cf1d8a6019d8bea3a5a56b14f7297aa680a5a..af168d0a7110e058f7dd47513b69abf476b0d712 100644
--- a/src/field_descriptor.cpp
+++ b/src/field_descriptor.cpp
@@ -238,7 +238,7 @@ int field_descriptor::transpose(
 }
 
 int field_descriptor::interleave(
-        float *input,
+        float *a,
         int dim)
 {
     fftwf_iodim howmany_dims[2];
@@ -251,9 +251,14 @@ int field_descriptor::interleave(
     const int howmany_rank = sizeof(howmany_dims)/sizeof(howmany_dims[0]);
 
     fftwf_plan tmp = fftwf_plan_guru_r2r(
-            /*rank*/0, /*dims*/NULL,
-            howmany_rank, howmany_dims,
-            input, input, /*kind*/NULL, FFTW_ESTIMATE);
+            /*rank*/0,
+            /*dims*/NULL,
+            howmany_rank,
+            howmany_dims,
+            a,
+            a,
+            /*kind*/NULL,
+            FFTW_ESTIMATE);
     fftwf_execute(tmp);
     fftwf_destroy_plan(tmp);
     return EXIT_SUCCESS;