diff --git a/src/cell.h b/src/cell.h
index 97fb0d1a985013e0245ad57fd617f7a6b80f6f13..f86ab765e75052c9231fdfebe225da0a5c72be68 100644
--- a/src/cell.h
+++ b/src/cell.h
@@ -216,9 +216,6 @@ struct cell {
 #define cell_getid(cdim, i, j, k) \
   ((int)(k) + (cdim)[2] * ((int)(j) + (cdim)[1] * (int)(i)))
 
-#define cell_getid2(cdim_x, cdim_y, cdim_z, i, j, k) \
-  ((int)(k) + cdim_z * ((int)(j) + cdim_y * (int)(i)))
-
 /* Function prototypes. */
 void cell_split(struct cell *c, ptrdiff_t parts_offset);
 void cell_sanitize(struct cell *c);
diff --git a/src/space.c b/src/space.c
index 516350c5af42920c1bc8e934baa306c4082be10e..93e96ac433e51c25e8062dfb9a80007067126e3e 100644
--- a/src/space.c
+++ b/src/space.c
@@ -756,9 +756,7 @@ void space_parts_get_cell_index_mapper(void *map_data, int nr_parts,
   const double dim_x = s->dim[0];
   const double dim_y = s->dim[1];
   const double dim_z = s->dim[2];
-  // const int cdim_x = s->cdim[0];
-  const int cdim_y = s->cdim[1];
-  const int cdim_z = s->cdim[2];
+  const int cdim[3] = {s->cdim[0], s->cdim[1], s->cdim[2]};
   const double ih_x = s->iwidth[0];
   const double ih_y = s->iwidth[1];
   const double ih_z = s->iwidth[2];
@@ -778,8 +776,8 @@ void space_parts_get_cell_index_mapper(void *map_data, int nr_parts,
     const double pos_z = box_wrap(old_pos_z, 0.0, dim_z);
 
     /* Get its cell index */
-    const int index = cell_getid2(0., cdim_y, cdim_z, pos_x * ih_x,
-                                  pos_y * ih_y, pos_z * ih_z);
+    const int index =
+        cell_getid(cdim, pos_x * ih_x, pos_y * ih_y, pos_z * ih_z);
     ind[k] = index;
 
     /* Update the position */
@@ -806,24 +804,37 @@ void space_gparts_get_cell_index_mapper(void *map_data, int nr_gparts,
   int *const ind = data->ind + (ptrdiff_t)(gparts - s->gparts);
 
   /* Get some constants */
-  const double dim[3] = {s->dim[0], s->dim[1], s->dim[2]};
+  const double dim_x = s->dim[0];
+  const double dim_y = s->dim[1];
+  const double dim_z = s->dim[2];
   const int cdim[3] = {s->cdim[0], s->cdim[1], s->cdim[2]};
-  const double ih[3] = {s->iwidth[0], s->iwidth[1], s->iwidth[2]};
+  const double ih_x = s->iwidth[0];
+  const double ih_y = s->iwidth[1];
+  const double ih_z = s->iwidth[2];
 
   for (int k = 0; k < nr_gparts; k++) {
 
     /* Get the particle */
     struct gpart *restrict gp = &gparts[k];
 
+    const double old_pos_x = gp->x[0];
+    const double old_pos_y = gp->x[1];
+    const double old_pos_z = gp->x[2];
+
     /* Put it back into the simulation volume */
-    gp->x[0] = box_wrap(gp->x[0], 0.0, dim[0]);
-    gp->x[1] = box_wrap(gp->x[1], 0.0, dim[1]);
-    gp->x[2] = box_wrap(gp->x[2], 0.0, dim[2]);
+    const double pos_x = box_wrap(old_pos_x, 0.0, dim_x);
+    const double pos_y = box_wrap(old_pos_y, 0.0, dim_y);
+    const double pos_z = box_wrap(old_pos_z, 0.0, dim_z);
 
     /* Get its cell index */
     const int index =
-        cell_getid(cdim, gp->x[0] * ih[0], gp->x[1] * ih[1], gp->x[2] * ih[2]);
+        cell_getid(cdim, pos_x * ih_x, pos_y * ih_y, pos_z * ih_z);
     ind[k] = index;
+
+    /* Update the position */
+    gp->x[0] = pos_x;
+    gp->x[1] = pos_y;
+    gp->x[2] = pos_z;
   }
 }