diff --git a/src/runner.c b/src/runner.c
index 68f1a76f04d088487ceaf6c304f2026db22f71e2..410458fadb91886ba7492418a40db75f1dc6c4e3 100644
--- a/src/runner.c
+++ b/src/runner.c
@@ -765,6 +765,9 @@ static void runner_do_drift(struct cell *c, struct engine *e) {
   c->updated = 0;
   c->g_updated = 0;
 
+  /* Should we abort as a rebuild has been triggered ? */
+  if (e->forcerebuild) return;
+
   /* Do we need to drift ? */
   if (!e->drift_all && !cell_is_drift_needed(c, ti_current)) return;
 
diff --git a/src/space.c b/src/space.c
index 7169e09d0bac5b12352f2405966eb49ec6acde84..ddd4c076e9ef9c18c8bf25eeb9360dc7333b88f8 100644
--- a/src/space.c
+++ b/src/space.c
@@ -403,6 +403,17 @@ void space_regrid(struct space *s, double cell_max, int verbose) {
       s->cells_top[k].sourceterms = NULL;
       s->cells_top[k].super = &s->cells_top[k];
       s->cells_top[k].gsuper = &s->cells_top[k];
+#if WITH_MPI
+      s->cells_top[k].recv_xv = NULL;
+      s->cells_top[k].recv_rho = NULL;
+      s->cells_top[k].recv_gradient = NULL;
+      s->cells_top[k].recv_ti = NULL;
+
+      s->cells_top[k].send_xv = NULL;
+      s->cells_top[k].send_rho = NULL;
+      s->cells_top[k].send_gradient = NULL;
+      s->cells_top[k].send_ti = NULL;
+#endif
     }
     s->maxdepth = 0;
   }