diff --git a/src/cell.c b/src/cell.c
index 72e388498876c0fbad7f044853d306132c861830..9fd32ed8c6402d51358bcdc888aefaad16abe7c2 100644
--- a/src/cell.c
+++ b/src/cell.c
@@ -3226,12 +3226,9 @@ int cell_unskip_hydro_tasks(struct cell *c, struct scheduler *s) {
     if (c->timestep != NULL) scheduler_activate(s, c->timestep);
     if (c->hydro.end_force != NULL) scheduler_activate(s, c->hydro.end_force);
     if (c->hydro.cooling != NULL) scheduler_activate(s, c->hydro.cooling);
-    if (c->logger != NULL) scheduler_activate(s, c->logger);
-
-    if (c->hydro.star_formation != NULL) {
+    if (c->hydro.star_formation != NULL)
       scheduler_activate(s, c->hydro.star_formation);
-      cell_activate_drift_spart(c, s);
-    }
+    if (c->logger != NULL) scheduler_activate(s, c->logger);
   }
 
   return rebuild;
diff --git a/src/engine_marktasks.c b/src/engine_marktasks.c
index 9b34b3ea95a9ae8bc848a90113647b3e68b121b1..c02eb5d2bd272111808701269faed07cef505449 100644
--- a/src/engine_marktasks.c
+++ b/src/engine_marktasks.c
@@ -642,17 +642,13 @@ void engine_marktasks_mapper(void *map_data, int num_elements,
         scheduler_activate(s, t);
     }
 
-    /* Subgrid tasks: cooling */
+    /* Subgrid tasks */
     else if (t_type == task_type_cooling) {
-      if (cell_is_active_hydro(t->ci, e)) scheduler_activate(s, t);
-    }
-
-    /* Subgrid tasks: star formation */
-    else if (t_type == task_type_star_formation) {
-      if (cell_is_active_hydro(t->ci, e)) {
+      if (cell_is_active_hydro(t->ci, e) || cell_is_active_gravity(t->ci, e))
+        scheduler_activate(s, t);
+    } else if (t_type == task_type_star_formation) {
+      if (cell_is_active_hydro(t->ci, e) || cell_is_active_gravity(t->ci, e))
         scheduler_activate(s, t);
-        cell_activate_drift_spart(t->ci, s);
-      }
     }
   }
 }