diff --git a/src/runner_doiact.h b/src/runner_doiact.h
index 7fe19af853601e49de553a55ee205c654167d67e..bf16cb8f82f0d1d9a0d9b9d955831ada152f4307 100644
--- a/src/runner_doiact.h
+++ b/src/runner_doiact.h
@@ -2361,7 +2361,7 @@ void DOSUB_SUBSET(struct runner *r, struct cell *ci, struct part *parts,
             DOSUB_SUBSET(r, ci->progeny[7], parts, ind, count, cj->progeny[0],
                          -1, 0);
           if (ci->progeny[7] != NULL && cj->progeny[0] == sub)
-            DOSUB_SUBSET(r, ci->progeny[0], parts, ind, count, cj->progeny[7],
+            DOSUB_SUBSET(r, cj->progeny[0], parts, ind, count, ci->progeny[7],
                          -1, 0);
           break;