diff --git a/matlab/dynare_estimation_1.m b/matlab/dynare_estimation_1.m
index 49a48a3eca827b1a125ff9753dfb95c860c68ebc..200898e00c61c985d7230d7a4472dd896c6ea191 100644
--- a/matlab/dynare_estimation_1.m
+++ b/matlab/dynare_estimation_1.m
@@ -422,6 +422,7 @@ end
 
 if (any(bayestopt_.pshape  >0 ) && options_.mh_replic) || ...
         (any(bayestopt_.pshape >0 ) && options_.load_mh_file)  %% not ML estimation
+    bounds = prior_bounds(bayestopt_, options_.prior_trunc); %reset bounds as lb and ub must only be operational during mode-finding
     outside_bound_pars=find(xparam1 < bounds.lb | xparam1 > bounds.ub);
     if ~isempty(outside_bound_pars)
         for ii=1:length(outside_bound_pars)
diff --git a/matlab/identification_analysis.m b/matlab/identification_analysis.m
index 51d71a2765aa91a63a4c1f098228698fa76184e1..1089451341e957c9a3124853f9048d3861865211 100644
--- a/matlab/identification_analysis.m
+++ b/matlab/identification_analysis.m
@@ -155,7 +155,7 @@ if info(1)==0
             info = stoch_simul(options_.varobs);
             dataset_ = dseries(oo_.endo_simul(options_.varobs_id,100+1:end)',dates('1Q1'), options_.varobs);
             derivatives_info.no_DLIK=1;
-            %bounds = prior_bounds(bayestopt_, options_.prior_trunc);
+            bounds = prior_bounds(bayestopt_, options_.prior_trunc); %reset bounds as lb and ub must only be operational during mode-finding
             [fval,info,cost_flag,DLIK,AHess,ys,trend_coeff,M_,options_,bayestopt_,oo_] = dsge_likelihood(params',dataset_,dataset_info,options_,M_,estim_params_,bayestopt_,bounds,oo_,derivatives_info);
             %                 fval = DsgeLikelihood(xparam1,data_info,options_,M_,estim_params_,bayestopt_,oo_);
             options_.analytic_derivation = analytic_derivation;