diff --git a/src/utils/Messenger.hpp b/src/utils/Messenger.hpp
index bc669cfd4153311480230859b69afcd5ed6376ea..06ee020f1ab15f3c85116a84fac2d1ab99467c3b 100644
--- a/src/utils/Messenger.hpp
+++ b/src/utils/Messenger.hpp
@@ -6,6 +6,7 @@
 
 #include <Array.hpp>
 #include <CastArray.hpp>
+#include <ArrayUtils.hpp>
 
 #include <type_traits>
 
@@ -128,7 +129,7 @@ class Messenger
                   &(gather_array[0]), data_array.size(),  mpi_datatype,
                   MPI_COMM_WORLD);
 #else // PASTIS_HAS_MPI
-    gather_array = copy(data_array);
+    value_copy(data_array, gather_array);
 #endif // PASTIS_HAS_MPI
   }
 
@@ -185,7 +186,7 @@ class Messenger
                  &(recv_array[0]), count, mpi_datatype,
                  MPI_COMM_WORLD);
 #else  // PASTIS_HAS_MPI
-    recv_array = copy(sent_array);
+    value_copy(sent_array, recv_array);
 #endif // PASTIS_HAS_MPI
     return recv_array;
   }
@@ -235,8 +236,10 @@ class Messenger
     }
 
 #else // PASTIS_HAS_MPI
-    std::cerr << "NIY\n";
-    std::exit(1);
+    Assert(sent_array_list.size() == 1);
+    Assert(recv_array_list.size() == 1);
+
+    value_copy(sent_array_list[0], recv_array_list[0]);
 #endif // PASTIS_HAS_MPI
   }