diff --git a/bfps/fluid_base.py b/bfps/fluid_base.py
index ba0be9ed8e3660dc66c9fa0a89a2eb2b8979a99f..a96d3c3f48c3ab1ba555f03873cf1e142b8603b0 100644
--- a/bfps/fluid_base.py
+++ b/bfps/fluid_base.py
@@ -193,8 +193,6 @@ class fluid_particle_base(bfps.code):
                                MPI_Finalize();
                                return EXIT_SUCCESS;
                            }
-                           do_stats();
-                           do_particle_stats();
                            //endcpp
                            """
         output_time_difference = ('time1 = clock();\n' +
@@ -209,12 +207,11 @@ class fluid_particle_base(bfps.code):
         self.main       += 'for (int max_iter = iteration+niter_todo; iteration < max_iter; iteration++)\n'
         self.main       += '{\n'
         self.main       += output_time_difference
-        if self.particle_species > 0:
-            self.main   += self.particle_loop
-        self.main       += self.fluid_loop
         self.main       += 'if (iteration % niter_stat == 0) do_stats();\n'
         if self.particle_species > 0:
             self.main       += 'if (iteration % niter_part == 0) do_particle_stats();\n'
+            self.main   += self.particle_loop
+        self.main       += self.fluid_loop
         self.main       += '}\n'
         self.main       += output_time_difference
         self.main       += 'do_stats();\n'
diff --git a/tests/base.py b/tests/base.py
index a88f3562b39c1e9c938e646790eac874ab10e232..948a1f8a0cadce1f85d8c5aa36c1d887e2a8f49e 100644
--- a/tests/base.py
+++ b/tests/base.py
@@ -99,7 +99,6 @@ def launch(
     else:
         c.parameters['dt'] = dt
     c.parameters['niter_out'] = c.parameters['niter_todo']
-    c.parameters['niter_part'] = 1
     c.parameters['famplitude'] = 0.2
     c.fill_up_fluid_code()
     if c.parameters['nparticles'] > 0:
diff --git a/tests/test_convergence.py b/tests/test_convergence.py
index f00e8df7e46388c461b59c8f5b34c62936344baf..cd9d52828f69617c303d9b87818c5fd652721a8b 100644
--- a/tests/test_convergence.py
+++ b/tests/test_convergence.py
@@ -49,6 +49,7 @@ def convergence_test(
     opt.n *= 2
     opt.niter_todo *= 2
     opt.niter_stat *= 2
+    opt.niter_part *= 2
     opt.ncpu *= 2
     opt.simname = 'N{0:0>3x}'.format(opt.n)
     c1 = code_launch_routine(
@@ -61,6 +62,7 @@ def convergence_test(
     opt.n *= 2
     opt.niter_todo *= 2
     opt.niter_stat *= 2
+    opt.niter_part *= 2
     opt.ncpu *= 2
     opt.simname = 'N{0:0>3x}'.format(opt.n)
     c2 = code_launch_routine(
diff --git a/tests/test_particles.py b/tests/test_particles.py
index 92f82b901624ad0b48cf9ba5e3661de7f5071f03..172149978b4b3c97e4cc610b55ac5bb24438b542 100644
--- a/tests/test_particles.py
+++ b/tests/test_particles.py
@@ -138,7 +138,7 @@ class err_finder:
         errlist = []
         for i in range(len(self.clist)):
             self.xx.append(cRK(
-                traj_list[i][self.clist[i].parameters['niter_todo']//2],
+                traj_list[i][self.clist[i].parameters['niter_todo']//(2*self.clist[i].parameters['niter_part'])],
                 self.clist[i].parameters['dt'],
                 self.clist[i].parameters['niter_todo']//2,
                 ABC_flow))