diff --git a/src/cache.h b/src/cache.h
index 77f933cc54e7549ef55b7e7503b9797524413713..5dd8164b1dc80795a8593cc2af42c2c9e7e68885 100644
--- a/src/cache.h
+++ b/src/cache.h
@@ -834,6 +834,7 @@ static INLINE void cache_clean(struct cache *c) {
     free(c->balsara);
     free(c->soundspeed);
   }
+  c->count = 0;
 }
 
 #endif /* WITH_VECTORIZATION */
diff --git a/tests/test125cells.c b/tests/test125cells.c
index 0b52bf68734e398db515e204fa3cec60d5c6f314..3d7d5458f1ef031d6e497eab44b4f4be4fab16e5 100644
--- a/tests/test125cells.c
+++ b/tests/test125cells.c
@@ -590,6 +590,7 @@ int main(int argc, char *argv[]) {
   prog_const.const_newton_G = 1.f;
 
   struct hydro_props hp;
+  hydro_props_init_no_hydro(&hp);
   hp.eta_neighbours = h;
   hp.h_tolerance = 1e0;
   hp.h_max = FLT_MAX;
@@ -675,8 +676,8 @@ int main(int argc, char *argv[]) {
 /* Initialise the particle cache. */
 #ifdef WITH_VECTORIZATION
     runner.ci_cache.count = 0;
-    cache_init(&runner.ci_cache, 512);
     runner.cj_cache.count = 0;
+    cache_init(&runner.ci_cache, 512);
     cache_init(&runner.cj_cache, 512);
 #endif
 
@@ -724,8 +725,8 @@ int main(int argc, char *argv[]) {
 
 #ifdef WITH_VECTORIZATION
     /* Initialise the cache. */
-    runner.ci_cache.count = 0;
-    runner.cj_cache.count = 0;
+    cache_clean(&runner.ci_cache);
+    cache_clean(&runner.cj_cache);
     cache_init(&runner.ci_cache, 512);
     cache_init(&runner.cj_cache, 512);
 #endif
@@ -890,5 +891,8 @@ int main(int argc, char *argv[]) {
   for (int i = 0; i < 125; ++i) clean_up(cells[i]);
   free(solution);
 
+  cache_clean(&runner.ci_cache);
+  cache_clean(&runner.cj_cache);
+
   return 0;
 }
diff --git a/tests/test27cells.c b/tests/test27cells.c
index 0ba724c7da8051c10bb8205f2d9ad2ecbf3753c3..92a36d7dcdf505342f97c1ab3fe1cbc6aaccca22 100644
--- a/tests/test27cells.c
+++ b/tests/test27cells.c
@@ -456,6 +456,7 @@ int main(int argc, char *argv[]) {
   space.dim[2] = 3.;
 
   struct hydro_props hp;
+  hydro_props_init_no_hydro(&hp);
   hp.eta_neighbours = h;
   hp.h_tolerance = 1e0;
   hp.h_max = FLT_MAX;
@@ -615,5 +616,8 @@ int main(int argc, char *argv[]) {
   /* Clean things to make the sanitizer happy ... */
   for (int i = 0; i < 27; ++i) clean_up(cells[i]);
 
+  cache_clean(&runner.ci_cache);
+  cache_clean(&runner.cj_cache);
+
   return 0;
 }
diff --git a/tests/testCbrt.c b/tests/testCbrt.c
index b608f9a00d619570c298f4123038f930584a245c..3663e0e19ad2a5ad35d67703e00f5c0309a3eb00 100644
--- a/tests/testCbrt.c
+++ b/tests/testCbrt.c
@@ -125,5 +125,6 @@ int main(int argc, char *argv[]) {
   message("x * icbrtf   took %9.3f %s (acc = %18.11e).",
           clocks_from_ticks(getticks() - tic_ours), clocks_getunit(), acc_ours);
 
+  free(data);
   return 0;
 }