diff --git a/matlab/particle/sequential_importance_particle_filter.m b/matlab/particle/sequential_importance_particle_filter.m
index cbf675237030ba8b473837a6f222cd95a3d14023..a383632433d95082bd1c4f603f5019fd584e01d6 100644
--- a/matlab/particle/sequential_importance_particle_filter.m
+++ b/matlab/particle/sequential_importance_particle_filter.m
@@ -115,7 +115,7 @@ lik  = NaN(sample_size,1);
 
 % Initialization of the weights across particles.
 nb_obs_resamp = 0 ;
-weights = ones(1,number_of_particles) ;
+weights = ones(1,number_of_particles)/number_of_particles ;
 StateVectors = bsxfun(@plus,StateVectorVarianceSquareRoot*randn(state_variance_rank,number_of_particles),StateVectorMean);
 for t=1:sample_size
     yhat = bsxfun(@minus,StateVectors,state_variables_steady_state);
@@ -134,10 +134,9 @@ for t=1:sample_size
     if (Neff<.5*sample_size && strcmpi(DynareOptions.particle.resampling.status,'generic')) || strcmpi(DynareOptions.particle.resampling.status,'systematic')
         nb_obs_resamp = nb_obs_resamp+1 ;
         StateVectors = tmp(mf0,resample(weights,DynareOptions.particle.resampling.method1,DynareOptions.particle.resampling.method2));
-        weights = ones(1,number_of_particles) ;
+        weights = ones(1,number_of_particles)/number_of_particles ;
     elseif strcmpi(DynareOptions.particle_filter.resampling.status,'none')
         StateVectors = tmp(mf0,:);
-        weights = number_of_particles*weights;
     end
 end