diff --git a/matlab/evaluate_likelihood.m b/matlab/evaluate_likelihood.m
index 652a258cc9e8bc1ebed3d3731cd138cb63f36c38..315663333b5060f0c5ca72323bdd259aa818a19b 100644
--- a/matlab/evaluate_likelihood.m
+++ b/matlab/evaluate_likelihood.m
@@ -47,24 +47,24 @@ end
 
 if ischar(parameters)
     switch parameters
-      case 'posterior mode'
-        parameters = get_posterior_parameters('mode',M_,estim_params_,oo_,options_);
-      case 'posterior mean'
-        parameters = get_posterior_parameters('mean',M_,estim_params_,oo_,options_);
-      case 'posterior median'
-        parameters = get_posterior_parameters('median',M_,estim_params_,oo_,options_);
-      case 'prior mode'
-        parameters = bayestopt_.p5(:);
-      case 'prior mean'
-        parameters = bayestopt_.p1;
-      otherwise
-        disp('eval_likelihood:: If the input argument is a string, then it has to be equal to:')
-        disp('                   ''posterior mode'', ')
-        disp('                   ''posterior mean'', ')
-        disp('                   ''posterior median'', ')
-        disp('                   ''prior mode'' or')
-        disp('                   ''prior mean''.')
-        error
+        case 'posterior mode'
+            parameters = get_posterior_parameters('mode',M_,estim_params_,oo_,options_);
+        case 'posterior mean'
+            parameters = get_posterior_parameters('mean',M_,estim_params_,oo_,options_);
+        case 'posterior median'
+            parameters = get_posterior_parameters('median',M_,estim_params_,oo_,options_);
+        case 'prior mode'
+            parameters = bayestopt_.p5(:);
+        case 'prior mean'
+            parameters = bayestopt_.p1;
+        otherwise
+            disp('eval_likelihood:: If the input argument is a string, then it has to be equal to:')
+            disp('                   ''posterior mode'', ')
+            disp('                   ''posterior mean'', ')
+            disp('                   ''posterior median'', ')
+            disp('                   ''prior mode'' or')
+            disp('                   ''prior mean''.')
+            error
     end
 end
 
@@ -73,10 +73,23 @@ if isempty(dataset)
 end
 options_=select_qz_criterium_value(options_);
 
+[~,~,~,lb,ub] = set_prior(estim_params_,M_,options_);
+if ~isempty(bayestopt_) && any(bayestopt_.pshape > 0)
+    % Plot prior densities.
+    % Set prior bounds
+    bounds = prior_bounds(bayestopt_, options_.prior_trunc);
+else  % estimated parameters but no declared priors
+    % No priors are declared so Dynare will estimate the model by
+    % maximum likelihood with inequality constraints for the parameters.
+    bounds.lb = lb;
+    bounds.ub = ub;
+end
+
+
 if options_.occbin.likelihood.status && options_.occbin.likelihood.inversion_filter
-    llik = -occbin.IVF_posterior(parameters,dataset,dataset_info,options_,M_,estim_params_,bayestopt_,prior_bounds(bayestopt_,options_.prior_trunc),oo_);
-else    
-    llik = -dsge_likelihood(parameters,dataset,dataset_info,options_,M_,estim_params_,bayestopt_,prior_bounds(bayestopt_,options_.prior_trunc),oo_);
+    llik = -occbin.IVF_posterior(parameters,dataset,dataset_info,options_,M_,estim_params_,bayestopt_,bounds,oo_);
+else
+    llik = -dsge_likelihood(parameters,dataset,dataset_info,options_,M_,estim_params_,bayestopt_,bounds,oo_);
 end
 ldens = evaluate_prior(parameters,M_,estim_params_,oo_,options_,bayestopt_);
 llik = llik - ldens;
\ No newline at end of file