diff --git a/matlab/dsge_likelihood.m b/matlab/dsge_likelihood.m
index da63a35caec1960a75d079bc6461ef0c399d511b..21de390873027825d6ea05351e47696c858778e5 100644
--- a/matlab/dsge_likelihood.m
+++ b/matlab/dsge_likelihood.m
@@ -195,7 +195,12 @@ if ~isequal(DynareOptions.mode_compute,1) && any(xparam1<BayesInfo.lb)
     fval = penalty+sum((BayesInfo.lb(k)-xparam1(k)).^2);
     xtemp=xparam1;
     xtemp(k)=BayesInfo.lb(k);
-    prior_correction = max(0,-prior_penalty-priordens(xtemp,BayesInfo.pshape,BayesInfo.p6,BayesInfo.p7,BayesInfo.p3,BayesInfo.p4));
+    if DynareOptions.prior_trunc,
+        prior1 = priordens(xtemp,BayesInfo.pshape,BayesInfo.p6,BayesInfo.p7,BayesInfo.p3,BayesInfo.p4);
+    else
+        prior1 = length(k)*log(1.e-20);
+    end
+    prior_correction = max(0,-prior_penalty-prior1);
     fval = fval+prior_correction;
     exit_flag = 0;
     info = 41;
@@ -211,7 +216,12 @@ if ~isequal(DynareOptions.mode_compute,1) && any(xparam1>BayesInfo.ub)
     fval = penalty+sum((xparam1(k)-BayesInfo.ub(k)).^2);
     xtemp=xparam1;
     xtemp(k)=BayesInfo.ub(k);
-    prior_correction = max(0,-prior_penalty -priordens(xtemp,BayesInfo.pshape,BayesInfo.p6,BayesInfo.p7,BayesInfo.p3,BayesInfo.p4));
+    if DynareOptions.prior_trunc,
+        prior1 = priordens(xtemp,BayesInfo.pshape,BayesInfo.p6,BayesInfo.p7,BayesInfo.p3,BayesInfo.p4);
+    else
+        prior1 = length(k)*log(1.e-20);
+    end
+    prior_correction = max(0,-prior_penalty -prior1);
     fval = fval+prior_correction;
     exit_flag = 0;
     info = 42;