diff --git a/src/engine_marktasks.c b/src/engine_marktasks.c
index 71453c625d77691d3500c4597d206259a58c8beb..c72b03a404524fa8dcd364bde248d297955697c7 100644
--- a/src/engine_marktasks.c
+++ b/src/engine_marktasks.c
@@ -113,6 +113,8 @@ void engine_marktasks_mapper(void *map_data, int num_elements,
         if (ci_active_hydro) {
           scheduler_activate(s, t);
           cell_activate_subcell_hydro_tasks(ci, NULL, s, with_timestep_limiter);
+
+          if (ci->nodeID == engine_rank) cell_activate_drift_part(ci, s);
           if (with_timestep_limiter) cell_activate_limiter(ci, s);
         }
       }
@@ -163,6 +165,9 @@ void engine_marktasks_mapper(void *map_data, int num_elements,
           scheduler_activate(s, t);
           cell_activate_subcell_stars_tasks(ci, NULL, s, with_star_formation,
                                             with_timestep_sync);
+
+          if (ci->nodeID == engine_rank) cell_activate_drift_part(ci, s);
+          if (ci->nodeID == engine_rank) cell_activate_drift_spart(ci, s);
         }
       }
 
@@ -374,6 +379,10 @@ void engine_marktasks_mapper(void *map_data, int num_elements,
                  t_subtype == task_subtype_density) {
           cell_activate_subcell_hydro_tasks(t->ci, t->cj, s,
                                             with_timestep_limiter);
+
+          /* Activate the drifts if the cells are local. */
+          if (ci->nodeID == engine_rank) cell_activate_drift_part(ci, s);
+          if (cj->nodeID == engine_rank) cell_activate_drift_part(cj, s);
         }
       }
 
@@ -437,6 +446,16 @@ void engine_marktasks_mapper(void *map_data, int num_elements,
                  t_subtype == task_subtype_stars_density) {
           cell_activate_subcell_stars_tasks(ci, cj, s, with_star_formation,
                                             with_timestep_sync);
+
+          /* Activate the drifts if the cells are local. */
+          if (ci_active_stars) {
+            if (ci->nodeID == engine_rank) cell_activate_drift_spart(ci, s);
+            if (cj->nodeID == engine_rank) cell_activate_drift_part(cj, s);
+          }
+          if (cj_active_stars) {
+            if (cj->nodeID == engine_rank) cell_activate_drift_spart(cj, s);
+            if (ci->nodeID == engine_rank) cell_activate_drift_part(ci, s);
+          }
         }
       }