diff --git a/src/cell.c b/src/cell.c
index b4716838c646267ddf6d68f7ade22b0ad35762da..79afff700fb6d0a6aa4edc46461f724ba796a652 100644
--- a/src/cell.c
+++ b/src/cell.c
@@ -568,3 +568,18 @@ void cell_init_parts(struct cell *c, void *data) {
   c->t_end_min = 0.;
 }
 
+
+/**
+ * @brief Cleans the links in a given cell.
+ *
+ * @param c Cell to act upon
+ * @param data Unused parameter
+ */
+void cell_clean_links(struct cell * c, void * data) {
+  c->density = NULL;
+  c->nr_density = 0;
+  
+  c->force = NULL;
+  c->nr_force = 0;
+}
+
diff --git a/src/cell.h b/src/cell.h
index 107c41d9cb9d9229f58be9fb176a62f0db829de3..a837e782db8dd3ff4acf418e133a235e77e7a207 100644
--- a/src/cell.h
+++ b/src/cell.h
@@ -178,5 +178,6 @@ int cell_unpack(struct pcell *pc, struct cell *c, struct space *s);
 int cell_getsize(struct cell *c);
 int cell_link(struct cell *c, struct part *parts);
 void cell_init_parts(struct cell *c, void *data);
+void cell_clean_links(struct cell * c, void * data);
 
 #endif /* SWIFT_CELL_H */
diff --git a/src/space.c b/src/space.c
index 0eb114bf92c1c3f59385918c460189a0b9b0ddd7..0f697b46f96ffe6dcd65acb0c035e04edcdac8ac 100644
--- a/src/space.c
+++ b/src/space.c
@@ -1237,13 +1237,7 @@ void space_init(struct space *s, double dim[3], struct part *parts, int N,
  */
 void space_link_cleanup(struct space *s) {
 
-  void cell_clean_links(struct cell * c, void * data) {
-    c->density = NULL;
-    c->nr_density = 0;
-
-    c->force = NULL;
-    c->nr_force = 0;
-  }
-
+  /* Recursively apply the cell link cleaning routine */
   space_map_cells_pre(s, 1, cell_clean_links, NULL);
+  
 }