diff --git a/src/cell.c b/src/cell.c
index b7c6cd9e3331de333a8e718a6b4ef2a1cabb9c4b..cbf93a694b24929a32f16f30752039a1ba357da2 100644
--- a/src/cell.c
+++ b/src/cell.c
@@ -2680,7 +2680,7 @@ void cell_recursively_activate_kicks(struct cell *c, struct scheduler *s,
   if (c->kick1 != NULL) {
     scheduler_activate(s, c->kick1);
     scheduler_activate(s, c->kick2);
-    scheduler_activate(s, c->timestep);
+    // scheduler_activate(s, c->timestep);
   } else {
 
 #ifdef SWIFT_DEBUG_CHECKS
@@ -2710,6 +2710,7 @@ void cell_activate_kicks(struct cell *c, struct scheduler *s,
   scheduler_activate(s, c->kick2_out);
   scheduler_activate(s, c->timestep_in);
   scheduler_activate(s, c->timestep_out);
+  scheduler_activate(s, c->timestep);
   cell_recursively_activate_kicks(c, s, e);
 }
 
diff --git a/src/engine.c b/src/engine.c
index d2d2d844bcfe41befe0744e022a22e2877747c79..fe8f1fcff02ca8726c8cd4595e121c38bd0312fa 100644
--- a/src/engine.c
+++ b/src/engine.c
@@ -2043,14 +2043,14 @@ void engine_skip_force_and_kick(struct engine *e) {
     if (t->type == task_type_drift_part || t->type == task_type_drift_gpart ||
         t->type == task_type_drift_spart || t->type == task_type_drift_bpart ||
         t->type == task_type_kick1 || t->type == task_type_kick2 ||
-	t->type == task_type_kick1_in || t->type == task_type_kick2_in ||
-	t->type == task_type_kick1_out || t->type == task_type_kick2_out ||
+        t->type == task_type_kick1_in || t->type == task_type_kick2_in ||
+        t->type == task_type_kick1_out || t->type == task_type_kick2_out ||
         t->type == task_type_timestep || t->type == task_type_timestep_in ||
-	t->type == task_type_timestep_out ||
+        t->type == task_type_timestep_out ||
         t->type == task_type_timestep_limiter ||
         t->type == task_type_timestep_sync ||
         t->type == task_type_end_hydro_force || t->type == task_type_cooling ||
-	t->type == task_type_cooling_in || t->type == task_type_cooling_out ||
+        t->type == task_type_cooling_in || t->type == task_type_cooling_out ||
         t->type == task_type_stars_in || t->type == task_type_stars_out ||
         t->type == task_type_star_formation ||
         t->type == task_type_stars_resort || t->type == task_type_extra_ghost ||
diff --git a/src/engine_maketasks.c b/src/engine_maketasks.c
index 409548bb3885bc328041d5b2ffb74f72df7b8a7b..9e0412336dbef250565c9631d7830a6a17fea6bf 100644
--- a/src/engine_maketasks.c
+++ b/src/engine_maketasks.c
@@ -843,10 +843,8 @@ void engine_add_kicks(struct engine *e, struct cell *c, struct task *kick1_in,
     scheduler_addunlock(s, kick2_in, c->kick2);
     scheduler_addunlock(s, c->kick2, kick2_out);
 
-    c->timestep = scheduler_addtask(s, task_type_timestep, task_subtype_none, 0,
-                                    0, c, NULL);
-    scheduler_addunlock(s, timestep_in, c->timestep);
-    scheduler_addunlock(s, c->timestep, timestep_out);
+    // scheduler_addunlock(s, timestep_in, c->timestep);
+    // scheduler_addunlock(s, c->timestep, timestep_out);
 
   } else {
     /* Keep recursing */
@@ -921,6 +919,12 @@ void engine_make_hierarchical_tasks_common(struct engine *e, struct cell *c) {
           scheduler_addtask(s, task_type_timestep_out, task_subtype_none, 0,
                             /*implicit=*/1, c, NULL);
 
+      c->timestep = scheduler_addtask(s, task_type_timestep, task_subtype_none,
+                                      0, 0, c, NULL);
+
+      scheduler_addunlock(s, c->timestep_in, c->timestep);
+      scheduler_addunlock(s, c->timestep, c->timestep_out);
+
       /* Add the real tasks */
       engine_add_kicks(e, c, c->kick1_in, c->kick1_out, c->kick2_in,
                        c->kick2_out, c->timestep_in, c->timestep_out);