diff --git a/tests/test125cells.c b/tests/test125cells.c
index a34bc00e843f793f17ffe20dad1f1b32055f494d..d4490c47ae0b3db22372457d94cae78c4e4d9a08 100644
--- a/tests/test125cells.c
+++ b/tests/test125cells.c
@@ -340,7 +340,8 @@ struct cell *make_cell(size_t n, const double offset[3], double size, double h,
   // shuffle_particles(cell->parts, cell->count);
 
   cell->sorted = 0;
-  cell->sort = NULL;
+  for (int k = 0; k < 13; k++)
+    cell->sort[k] = NULL;
 
   return cell;
 }
@@ -348,7 +349,9 @@ struct cell *make_cell(size_t n, const double offset[3], double size, double h,
 void clean_up(struct cell *ci) {
   free(ci->parts);
   free(ci->xparts);
-  free(ci->sort);
+  for (int k = 0; k < 13; k++)
+    if (ci->sort[k] != NULL)
+      free(ci->sort[k]);
   free(ci);
 }
 
diff --git a/tests/test27cells.c b/tests/test27cells.c
index 458129edd3b92d78a45102c118fb3e6f44ff604d..38ed5b7ef4419945e2c6e6bf4d342c709a884536 100644
--- a/tests/test27cells.c
+++ b/tests/test27cells.c
@@ -178,14 +178,17 @@ struct cell *make_cell(size_t n, double *offset, double size, double h,
   shuffle_particles(cell->parts, cell->count);
 
   cell->sorted = 0;
-  cell->sort = NULL;
+  for (int k = 0; k < 13; k++)
+    cell->sort[k] = NULL;
 
   return cell;
 }
 
 void clean_up(struct cell *ci) {
   free(ci->parts);
-  free(ci->sort);
+  for (int k = 0; k < 13; k++)
+    if (ci->sort[k] != NULL)
+      free(ci->sort[k]);
   free(ci);
 }
 
diff --git a/tests/testPair.c b/tests/testPair.c
index 539f04425afd61c18de64702831504a2888cfe3d..e1327ba9eafff8ad6d5d00af681f2a5c82bed13f 100644
--- a/tests/testPair.c
+++ b/tests/testPair.c
@@ -121,14 +121,17 @@ struct cell *make_cell(size_t n, double *offset, double size, double h,
   shuffle_particles(cell->parts, cell->count);
 
   cell->sorted = 0;
-  cell->sort = NULL;
+  for (int k = 0; k < 13; k++)
+    cell->sort[k] = NULL;
 
   return cell;
 }
 
 void clean_up(struct cell *ci) {
   free(ci->parts);
-  free(ci->sort);
+  for (int k = 0; k < 13; k++)
+    if (ci->sort[k] != NULL)
+      free(ci->sort[k]);
   free(ci);
 }
 
diff --git a/tests/testPeriodicBC.c b/tests/testPeriodicBC.c
index 469ca9b15bab3b28978bdadb12a07846ac30551b..7f3623e6af0f092074a8df7dc250fd7b640fe732 100644
--- a/tests/testPeriodicBC.c
+++ b/tests/testPeriodicBC.c
@@ -177,14 +177,17 @@ struct cell *make_cell(size_t n, double *offset, double size, double h,
   shuffle_particles(cell->parts, cell->count);
 
   cell->sorted = 0;
-  cell->sort = NULL;
+  for (int k = 0; k < 13; k++)
+    cell->sort[k] = NULL;
 
   return cell;
 }
 
 void clean_up(struct cell *ci) {
   free(ci->parts);
-  free(ci->sort);
+  for (int k = 0; k < 13; k++)
+    if (ci->sort[k] != NULL)
+      free(ci->sort[k]);
   free(ci);
 }
 
diff --git a/tests/testSPHStep.c b/tests/testSPHStep.c
index c3df2ca6da5ee5043d46f0266ca7a5b580f230ae..3e1f6b961dc82fc949120af53de6664d0413e5ec 100644
--- a/tests/testSPHStep.c
+++ b/tests/testSPHStep.c
@@ -81,7 +81,8 @@ struct cell *make_cell(size_t N, float cellSize, int offset[3], int id_offset) {
   cell->ti_end_max = 1;
 
   cell->sorted = 0;
-  cell->sort = NULL;
+  for (int k = 0; k < 13; k++)
+    cell->sort[k] = NULL;
 
   return cell;
 }
@@ -211,7 +212,9 @@ int main() {
   for (int j = 0; j < 27; ++j) {
     free(cells[j]->parts);
     free(cells[j]->xparts);
-    free(cells[j]->sort);
+    for (int k = 0; k < 13; k++)
+      if (cells[j]->sort[k] != NULL)
+        free(cells[j]->sort[k]);
     free(cells[j]);
   }