diff --git a/src/engine.c b/src/engine.c
index 9254a7184de06e4119f319df55c99edfd9b865b7..99d338917376b8d6e594d13873c457c663584450 100644
--- a/src/engine.c
+++ b/src/engine.c
@@ -248,7 +248,7 @@ void engine_redistribute(struct engine *e) {
     g_dest[k] = cells[cid].nodeID;
 
     /* The counts array is indexed as count[from * nr_nodes + to]. */
-    g_counts[nodeID * nr_nodes + dest[k]] += 1;
+    g_counts[nodeID * nr_nodes + g_dest[k]] += 1;
   }
 
   /* Sort the gparticles according to their cell index. */
@@ -337,7 +337,7 @@ void engine_redistribute(struct engine *e) {
 
       /* If the send is to the same node, just copy */
       if (k == nodeID) {
-        memcpy(&gparts_new[g_offset_recv], &s->gparts[offset_send],
+        memcpy(&gparts_new[g_offset_recv], &s->gparts[g_offset_send],
                sizeof(struct gpart) * g_counts[ind_recv]);
         g_offset_send += g_counts[ind_send];
         g_offset_recv += g_counts[ind_recv];