diff --git a/matlab/discretionary_policy/discretionary_policy_1.m b/matlab/discretionary_policy/discretionary_policy_1.m
index d75dd9718db3a9f05357b0a53a429e7f2c128525..ec1be205bf75a5b8a52c3afa9e2e7906369bb37e 100644
--- a/matlab/discretionary_policy/discretionary_policy_1.m
+++ b/matlab/discretionary_policy/discretionary_policy_1.m
@@ -113,5 +113,7 @@ T=H(dr.order_var,dr.order_var);
 dr.ghu=G(dr.order_var,:);
 if M_.maximum_endo_lag
     Selection=M_.lead_lag_incidence(1,dr.order_var)>0;%select state variables
+else
+    Selection=[];
 end
 dr.ghx=T(:,Selection);
diff --git a/matlab/optimal_policy/evaluate_planner_objective.m b/matlab/optimal_policy/evaluate_planner_objective.m
index cce61b1486ad67d1b77b5ce1f870cff4f6346b37..23d43b282f33c824263b521b6d2563b3fb532fef 100644
--- a/matlab/optimal_policy/evaluate_planner_objective.m
+++ b/matlab/optimal_policy/evaluate_planner_objective.m
@@ -265,12 +265,14 @@ else
         oo_.var(isnan(oo_.var)) = options_.huge_number;
 
         Ey = oo_.mean;
-        Eyhat = Ey - ys(dr.order_var(nstatic+(1:nspred)));
 
-        Eyhatyhat = oo_.var(:);
         Euu = M_.Sigma_e(:);
-
-        EU = U + Uy*gy*Eyhat + 0.5*(Uyygygy*Eyhatyhat + Uyygugu*Euu);
+        EU = U + 0.5*Uyygugu*Euu;
+        if M_.maximum_endo_lag
+            Eyhat = Ey - ys(dr.order_var(nstatic+(1:nspred)));
+            Eyhatyhat = oo_.var(:);
+            EU=EU + Uy*gy*Eyhat + 0.5*Uyygygy*Eyhatyhat;
+        end
         EW = EU/(1-beta);
         planner_objective_value.unconditional = EW;
 
diff --git a/meson.build b/meson.build
index be322ea4804b91aa15c4fd8309f6a61a52493f0a..0afbf1b3b045cb6dc14ee199c06f61238ef2e250 100644
--- a/meson.build
+++ b/meson.build
@@ -1069,6 +1069,7 @@ mod_and_m_tests = [
                'discretionary_policy/dennis_1_estim.mod',
                'discretionary_policy/dennis_1_estim_MoM.mod' ] },
   { 'test' : [ 'discretionary_policy/Gali_discretion.mod' ] },
+  { 'test' : [ 'discretionary_policy/NK_discretion_forward.mod' ] },
   { 'test' : [ 'discretionary_policy/Gali_2015_chapter_3.mod',
                'discretionary_policy/Gali_2015_chapter_3_nonlinear.mod' ] },
   { 'test' : [ 'histval_initval_file/ramst_data_generate.mod',
diff --git a/tests/discretionary_policy/NK_discretion_forward.mod b/tests/discretionary_policy/NK_discretion_forward.mod
new file mode 100644
index 0000000000000000000000000000000000000000..c5d36dec48a324a451ea2bf00720d3b2df11b6c3
--- /dev/null
+++ b/tests/discretionary_policy/NK_discretion_forward.mod
@@ -0,0 +1,27 @@
+var pi x R;
+
+varexo epsilon;
+
+parameters  beta kappa lambdax lambdaR sigma;
+
+sigma = 1;
+beta = 0.99;
+kappa = 0.102;
+lambdax = 0.1;
+
+model(linear);
+pi = beta*pi(+1)+kappa*x+epsilon;
+x = x(+1)-(1/sigma)*(R-pi(+1));
+end;
+
+shocks;
+var epsilon; stderr 0.01;
+end;
+
+planner_objective (pi^2 +lambdax*x^2);
+
+discretionary_policy(instruments=(R),irf=20,planner_discount= beta);
+
+
+
+