diff --git a/matlab/dsge_likelihood.m b/matlab/dsge_likelihood.m
index 23bfdcbd2b82a55b7ef66f0f4998e11a4b8608cf..694c1655e934c2262c6beedcff9eee3841dfba85 100644
--- a/matlab/dsge_likelihood.m
+++ b/matlab/dsge_likelihood.m
@@ -761,8 +761,12 @@ else
     lnprior = priordens(xparam1,BayesInfo.pshape,BayesInfo.p6,BayesInfo.p7,BayesInfo.p3,BayesInfo.p4);
 end
 if DynareOptions.endogenous_prior==1
-  [lnpriormom]  = endogenous_prior(Y,Pstar,BayesInfo);
-  fval    = (likelihood-lnprior-lnpriormom);
+  if DynareOptions.lik_init==2 || DynareOptions.lik_init==3
+    error('Endogenous prior not supported with non-stationary models')
+  else
+    [lnpriormom]  = endogenous_prior(Y,Pstar,BayesInfo,H);
+    fval    = (likelihood-lnprior-lnpriormom);
+  end
 else
   fval    = (likelihood-lnprior);
 end
diff --git a/matlab/endogenous_prior.m b/matlab/endogenous_prior.m
index b9b7f54aba61aa65c946837fc2bc0196bbbd5f8f..c2930abad8a9b82e316df4ce2c4e26483bb0c85f 100644
--- a/matlab/endogenous_prior.m
+++ b/matlab/endogenous_prior.m
@@ -1,4 +1,4 @@
-function [lnpriormom] = endogenous_prior(data,Pstar,BayesInfo)
+function [lnpriormom] = endogenous_prior(data,Pstar,BayesInfo,H)
 % Computes the endogenous log prior addition to the initial prior
 %
 % INPUTS
@@ -82,8 +82,7 @@ mf=BayesInfo.mf1;
 II=eye(size(Pstar,2));
 Z=II(mf,:);
 % This is Ftheta, variance of model variables, given param vector theta:
-Ftheta=diag(Z*Pstar(:,mf));  % +H;
-
+Ftheta=diag(Z*Pstar(:,mf)+H);
 % below commented out line is for Del Negro Schorfheide style priors:
 %     lnpriormom=-.5*n*TT*log(2*pi)-.5*TT*log(det(sigma))-.5*TT*trace(inv(sigma)*(gamyy-2*phi'*gamxy+phi'*gamxx*phi));
 lnpriormom=.5*n*log(Tsamp/(2*pi))-.5*log(det(Shat))-.5*Tsamp*(Fhat-Ftheta)'/Shat*(Fhat-Ftheta);