diff --git a/src/cell.c b/src/cell.c
index 0d553f5e6916b19d9e71f81a3baeff504ae7e576..55c1ec49505898907c1ba33da972ded804a95d87 100644
--- a/src/cell.c
+++ b/src/cell.c
@@ -224,9 +224,10 @@ int cell_link_foreign_parts(struct cell *c, struct part *parts) {
         count += cell_link_foreign_parts(c->progeny[k], &parts[count]);
       }
     }
+    return count;
+  } else {
+    return 0;
   }
-
-  return c->hydro.count;
 }
 
 /**
@@ -249,7 +250,7 @@ int cell_link_foreign_gparts(struct cell *c, struct gpart *gparts) {
   /* Do we have a hydro task at this level? */
   if (c->grav.grav != NULL) {
 
-    /* Recursively attach the parts */
+    /* Recursively attach the gparts */
     const int counts = cell_link_gparts(c, gparts);
 #ifdef SWIFT_DEBUG_CHECKS
     if (counts != c->grav.count)
@@ -266,9 +267,10 @@ int cell_link_foreign_gparts(struct cell *c, struct gpart *gparts) {
         count += cell_link_foreign_gparts(c->progeny[k], &gparts[count]);
       }
     }
+    return count;
+  } else {
+    return 0;
   }
-
-  return c->grav.count;
 }
 
 /**
@@ -298,9 +300,10 @@ int cell_count_parts_for_tasks(const struct cell *c) {
         count += cell_count_parts_for_tasks(c->progeny[k]);
       }
     }
+    return count;
+  } else {
+    return 0;
   }
-
-  return c->hydro.count;
 }
 
 /**
@@ -330,9 +333,10 @@ int cell_count_gparts_for_tasks(const struct cell *c) {
         count += cell_count_gparts_for_tasks(c->progeny[k]);
       }
     }
+    return count;
+  } else {
+    return 0;
   }
-
-  return c->grav.count;
 }
 
 /**