diff --git a/src/engine.c b/src/engine.c
index 89bb6c693e63b2705e1b8a9371713edc0945acb1..dbd65d248f35469bb8576d5062ea8053cf8611ae 100644
--- a/src/engine.c
+++ b/src/engine.c
@@ -2579,9 +2579,6 @@ void engine_marktasks_mapper(void *map_data, int num_elements,
       /* If this task does not involve any active cells, skip it. */
       if (!cell_is_active(t->ci, e) && !cell_is_active(t->cj, e)) continue;
 
-      /* Too much particle movement? */
-      if (cell_need_rebuild_for_pair(ci, cj)) *rebuild_space = 1;
-
       /* Only activate tasks that involve a local active cell. */
       if ((cell_is_active(ci, e) && ci->nodeID == engine_rank) ||
           (cj != NULL && cell_is_active(cj, e) && cj->nodeID == engine_rank)) {
@@ -2613,6 +2610,9 @@ void engine_marktasks_mapper(void *map_data, int num_elements,
       /* Only interested in density tasks as of here. */
       if (t->subtype == task_subtype_density) {
 
+	/* Too much particle movement? */
+	if (cell_need_rebuild_for_pair(ci, cj)) *rebuild_space = 1;
+
 #ifdef WITH_MPI
         /* Activate the send/recv tasks. */
         if (ci->nodeID != engine_rank) {