diff --git a/src/cell.c b/src/cell.c
index e8038db1da43bd6e2f7d562f7a8b6d62f9286a04..eba2ee675b5de9f58090d6fcfc53f7dbe55f235f 100644
--- a/src/cell.c
+++ b/src/cell.c
@@ -2348,6 +2348,8 @@ int cell_unskip_gravity_tasks(struct cell *c, struct scheduler *s) {
     /* Only activate tasks that involve a local active cell. */
     if ((ci_active && ci_nodeID == nodeID) ||
         (cj_active && cj_nodeID == nodeID)) {
+
+      scheduler_activate(s, t);
       cell_activate_grav_mm_task(ci, cj, s);
     }
   }
diff --git a/src/engine.c b/src/engine.c
index 04694b2c9c52f01fccd191e21460c8c38f111e04..6a840379fc0980ad359a85b77de1e1c3eb177f73 100644
--- a/src/engine.c
+++ b/src/engine.c
@@ -3741,28 +3741,6 @@ void engine_marktasks_mapper(void *map_data, int num_elements,
       if ((ci_active_gravity && ci_nodeID == engine_rank) ||
           (cj_active_gravity && cj_nodeID == engine_rank))
         scheduler_activate(s, t);
-
-#ifdef WITH_MPI
-      /* Activate the send/recv tasks. */
-      if (ci->nodeID != engine_rank) {
-
-        /* If the foreign cell is active, we want its ti_end values. */
-        if (ci_active_gravity) scheduler_activate(s, ci->recv_ti);
-
-        /* If the local cell is active, send its ti_end values. */
-        if (cj_active_gravity)
-          scheduler_activate_send(s, cj->send_ti, ci->nodeID);
-
-      } else if (cj->nodeID != engine_rank) {
-
-        /* If the foreign cell is active, we want its ti_end values. */
-        if (cj_active_gravity) scheduler_activate(s, cj->recv_ti);
-
-        /* If the local cell is active, send its ti_end values. */
-        if (ci_active_gravity)
-          scheduler_activate_send(s, ci->send_ti, cj->nodeID);
-      }
-#endif
     }
 
     /* Time-step? */