diff --git a/matlab/dynare_estimation_1.m b/matlab/dynare_estimation_1.m
index 183612574ca80437e6e26f54eea3d425326f8f68..8830e9617a51f28c598a9481cb49b5993c9c432f 100644
--- a/matlab/dynare_estimation_1.m
+++ b/matlab/dynare_estimation_1.m
@@ -419,6 +419,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 c59e08ec6d2091b652d4ea3d82433d6579ac587b..31bd50b193b20b10af8f2c8cca7e998ab2bb603a 100644
--- a/matlab/identification_analysis.m
+++ b/matlab/identification_analysis.m
@@ -155,7 +155,7 @@ if info(1)==0
             info = stoch_simul(char(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;