diff --git a/src/engine.c b/src/engine.c
index f21c7cfc8af721b9f8d895cffecb0c3605d34861..fe04187cef69021857a0f6d2e23eba09197bb8e8 100644
--- a/src/engine.c
+++ b/src/engine.c
@@ -2656,7 +2656,6 @@ static inline void engine_make_hydro_loops_dependencies(
 
   /* density loop --> ghost --> gradient loop --> extra_ghost */
   /* extra_ghost --> force loop  */
-  scheduler_addunlock(sched, c->super_hydro->sorts, density);
   scheduler_addunlock(sched, density, c->super_hydro->ghost_in);
   scheduler_addunlock(sched, c->super_hydro->ghost_out, gradient);
   scheduler_addunlock(sched, gradient, c->super_hydro->extra_ghost);
@@ -2731,7 +2730,7 @@ void engine_make_extra_hydroloop_tasks_mapper(void *map_data, int num_elements,
       /* Now, build all the dependencies for the hydro */
       engine_make_hydro_loops_dependencies(sched, t, t2, t3, t->ci,
                                            with_cooling);
-
+      scheduler_addunlock(sched, t3, t->ci->super->kick2);
 #else
 
       /* Start by constructing the task for the second hydro loop */
@@ -2778,10 +2777,14 @@ void engine_make_extra_hydroloop_tasks_mapper(void *map_data, int num_elements,
       if (t->ci->nodeID == nodeID) {
         engine_make_hydro_loops_dependencies(sched, t, t2, t3, t->ci,
                                              with_cooling);
+        scheduler_addunlock(sched, t3, t->ci->super->kick2);
       }
-      if (t->cj->nodeID == nodeID && t->ci->super_hydro != t->cj->super_hydro) {
-        engine_make_hydro_loops_dependencies(sched, t, t2, t3, t->cj,
-                                             with_cooling);
+      if (t->cj->nodeID == nodeID) {
+        if (t->ci->super_hydro != t->cj->super_hydro)
+          engine_make_hydro_loops_dependencies(sched, t, t2, t3, t->cj,
+                                               with_cooling);
+        if (t->ci->super != t->cj->super)
+          scheduler_addunlock(sched, t3, t->cj->super->kick2);
       }
 
 #else
@@ -2839,6 +2842,7 @@ void engine_make_extra_hydroloop_tasks_mapper(void *map_data, int num_elements,
       if (t->ci->nodeID == nodeID) {
         engine_make_hydro_loops_dependencies(sched, t, t2, t3, t->ci,
                                              with_cooling);
+        scheduler_addunlock(sched, t3, t->ci->super->kick2);
       }
 
 #else
@@ -2895,10 +2899,14 @@ void engine_make_extra_hydroloop_tasks_mapper(void *map_data, int num_elements,
       if (t->ci->nodeID == nodeID) {
         engine_make_hydro_loops_dependencies(sched, t, t2, t3, t->ci,
                                              with_cooling);
+        scheduler_addunlock(sched, t3, t->ci->super->kick2);
       }
-      if (t->cj->nodeID == nodeID && t->ci->super_hydro != t->cj->super_hydro) {
-        engine_make_hydro_loops_dependencies(sched, t, t2, t3, t->cj,
-                                             with_cooling);
+      if (t->cj->nodeID == nodeID) {
+        if (t->ci->super_hydro != t->cj->super_hydro)
+          engine_make_hydro_loops_dependencies(sched, t, t2, t3, t->cj,
+                                               with_cooling);
+        if (t->ci->super != t->cj->super)
+          scheduler_addunlock(sched, t3, t->cj->super->kick2);
       }
 
 #else
diff --git a/tests/testInteractions.c b/tests/testInteractions.c
index 71d5728f6721b5817e17b74b23415561ba39c21a..76ee5078819882c38e3e57ac33bc4ee3ae6fc67e 100644
--- a/tests/testInteractions.c
+++ b/tests/testInteractions.c
@@ -673,7 +673,7 @@ int main(int argc, char *argv[]) {
         break;
       case 's':
         sscanf(optarg, "%lf", &spacing);
-	break;
+        break;
       case 'n':
         sscanf(optarg, "%zu", &count);
         break;