diff --git a/bfps/cpp/particles/abstract_particles_output.hpp b/bfps/cpp/particles/abstract_particles_output.hpp
index cf71c99e72adec24273da23b5c113de5e1af02fb..7c25502cd8ca91199e3069f541f466bbfb85f0dd 100644
--- a/bfps/cpp/particles/abstract_particles_output.hpp
+++ b/bfps/cpp/particles/abstract_particles_output.hpp
@@ -176,7 +176,7 @@ public:
                     buffer_particles_rhs_send[idx_rhs].reset(new real_number[size_buffers_send*buffers_size_particle_rhs_send]);
                 }
             }
-            else if(buffers_size_particle_rhs_send < size_particle_rhs){
+            else if(buffers_size_particle_rhs_send < size_particle_rhs && size_particle_rhs > 0){
                 buffers_size_particle_rhs_send = size_particle_rhs;
                 for(int idx_rhs = 0 ; idx_rhs < nb_rhs ; ++idx_rhs){
                     buffer_particles_rhs_send[idx_rhs].reset(new real_number[size_buffers_send*buffers_size_particle_rhs_send]);
@@ -237,7 +237,7 @@ public:
                 buffer_particles_rhs_recv[idx_rhs].reset(new real_number[size_buffers_recv*buffers_size_particle_rhs_recv]);
             }
         }
-        else if(buffers_size_particle_rhs_recv < size_particle_rhs){
+        else if(buffers_size_particle_rhs_recv < size_particle_rhs && size_buffers_recv > 0){
             buffers_size_particle_rhs_recv = size_particle_rhs;
             for(int idx_rhs = 0 ; idx_rhs < nb_rhs ; ++idx_rhs){
                 buffer_particles_rhs_recv[idx_rhs].reset(new real_number[size_buffers_recv*buffers_size_particle_rhs_recv]);