diff --git a/cpp/particles/interpolation/particle_set.hpp b/cpp/particles/interpolation/particle_set.hpp
index 7330cfe80a8f50490879eb38c8dbb8ac6f62c949..6f474008b5f4bf542cc16d3be70260ad5882a7e4 100644
--- a/cpp/particles/interpolation/particle_set.hpp
+++ b/cpp/particles/interpolation/particle_set.hpp
@@ -215,6 +215,8 @@ class particle_set: public abstract_particle_set
         int template_sample(const field<field_rnumber, be, fc> &field_to_sample,
                    particle_rnumber *result)
         {
+            // attention: compute_distr adds result on top of existing values.
+            // please clean up result as appropriate before call.
             this->pdistributor.template compute_distr<interpolator_class,
                                                       field<field_rnumber, be, fc>,
                                                       state_size,
@@ -283,13 +285,6 @@ class particle_set: public abstract_particle_set
             this->local_index = particles_input.getMyParticlesIndexes();
             this->local_number_of_particles = particles_input.getLocalNbParticles();
 
-            for (partsize_t idx=0; idx < this->local_number_of_particles; idx++)
-            {
-                DEBUG_MSG_WAIT(this->mpi_comm, "idx = %d, z = %g\n",
-                        this->local_index[idx],
-                        this->local_state[idx*state_size+2]);
-            }
-
             particles_utils::partition_extra_z<partsize_t, state_size>(
                     &this->local_state[0],
                     this->local_number_of_particles,
@@ -298,9 +293,6 @@ class particle_set: public abstract_particle_set
                     this->offset_particles_for_partition.get(),
                     [&](const particle_rnumber& z_pos){
                         const int partition_level = this->pinterpolator.pbc_field_layer(z_pos, IDXC_Z);
-                        DEBUG_MSG("z_pos = %g, partition_level is %d\n",
-                                z_pos,
-                                partition_level);
                         assert(current_partition_interval.first <= partition_level && partition_level < current_partition_interval.second);
                         return partition_level - current_partition_interval.first;
                     },
diff --git a/cpp/particles/particles_distr_mpi.hpp b/cpp/particles/particles_distr_mpi.hpp
index 17dc121646ae54883a709a8a5009b60a64d209b7..aa6478f0e37640f57b1836f25485ec2c14e2c189 100644
--- a/cpp/particles/particles_distr_mpi.hpp
+++ b/cpp/particles/particles_distr_mpi.hpp
@@ -182,10 +182,6 @@ public:
         partsize_t myTotalNbParticles = 0;
         for(int idxPartition = 0 ; idxPartition < current_partition_size ; ++idxPartition){
             myTotalNbParticles += current_my_nb_particles_per_partition[idxPartition];
-            DEBUG_MSG("idxPartition = %d, current_offset_particles_for_partition = %d, current_my_nb_particles_per_partition = %d\n",
-                    idxPartition,
-                    current_offset_particles_for_partition[idxPartition],
-                    current_my_nb_particles_per_partition[idxPartition]);
             current_offset_particles_for_partition[idxPartition+1] = current_offset_particles_for_partition[idxPartition] + current_my_nb_particles_per_partition[idxPartition];
         }
 
@@ -215,8 +211,6 @@ public:
 
                 const int nbPartitionsToSend = std::min(current_partition_size, interpolation_size-(idxLower-1));
                 assert(nbPartitionsToSend >= 0);
-                DEBUG_MSG("idxLower = %d, nbPartitionsToSend = %d, current_offset_particles_for_partition = %d, current_offset_particles_for_partition[0] = %d\n",
-                        idxLower, nbPartitionsToSend, current_offset_particles_for_partition[nbPartitionsToSend], current_offset_particles_for_partition[0]);
                 const partsize_t nbParticlesToSend = current_offset_particles_for_partition[nbPartitionsToSend] - current_offset_particles_for_partition[0];
                 assert(nbParticlesToSend >= 0);
 
@@ -565,11 +559,6 @@ public:
                 for(partsize_t idx = 0 ; idx < current_my_nb_particles_per_partition[idxPartition] ; ++idx){
                     const int partition_level = in_computer.pbc_field_layer((*inout_positions_particles)[(idx+partOffset)*size_particle_positions+IDXC_Z], IDXC_Z);
                     variable_used_only_in_assert(partition_level);
-                    DEBUG_MSG("partition_level = %d, current_parition_interval.first = %d, idxPartition = %d\n",
-                              partition_level,
-                              current_partition_interval.first,
-                              idxPartition
-                            );
                     assert(partition_level == current_partition_interval.first + idxPartition
                            || partition_level == (current_partition_interval.first + idxPartition-1+int(field_grid_dim[IDXC_Z]))%int(field_grid_dim[IDXC_Z])
                            || partition_level == (current_partition_interval.first + idxPartition+1)%int(field_grid_dim[IDXC_Z]));
diff --git a/cpp/particles/particles_input_random.hpp b/cpp/particles/particles_input_random.hpp
index d862acc30ada993b1f8cefc1cd68a2bf0f274218..3830c8b91867df111258274e52eba72fc23d8da1 100644
--- a/cpp/particles/particles_input_random.hpp
+++ b/cpp/particles/particles_input_random.hpp
@@ -99,7 +99,6 @@ class particles_input_random: public abstract_particles_input<partsize_t, partic
                 for (int cc=0; cc < 2; cc++)
                     this->local_particle_state[idx*state_size + cc] = twopi*udist(rgen);
                 this->local_particle_state[idx*state_size + 2] = uzdist(rgen);
-                DEBUG_MSG("zpos = %g\n", this->local_particle_state[idx*state_size + 2]);
                 for (int cc = 3; cc < state_size; cc++)
                     this->local_particle_state[idx*state_size + cc] = gdist(rgen);
             }
diff --git a/cpp/particles/rhs/tracer_rhs.hpp b/cpp/particles/rhs/tracer_rhs.hpp
index 32ed9f23a5d05685ebbb9ed2c68bc2109f68b3e3..c4f0342870d783911ab6ebd899ccff1fa8786e15 100644
--- a/cpp/particles/rhs/tracer_rhs.hpp
+++ b/cpp/particles/rhs/tracer_rhs.hpp
@@ -54,6 +54,8 @@ class tracer_rhs: public abstract_particle_rhs
                 abstract_particle_set &pset,
                 particle_rnumber *result) const
         {
+            // interpolation adds on top of existing values, so result must be cleared.
+            std::fill_n(result, pset.getLocalNumberOfParticles()*3, 0);
             return (*(this->velocity))(t, pset, result);
         }
 };