diff --git a/matlab/evaluate_planner_objective.m b/matlab/evaluate_planner_objective.m
index e6f80f9bd8f2c34cad03f05d5edbbc571384b2c5..69f24c6e5b1395724e46780794f0abee6296fbc1 100644
--- a/matlab/evaluate_planner_objective.m
+++ b/matlab/evaluate_planner_objective.m
@@ -11,7 +11,7 @@ function planner_objective_value = evaluate_planner_objective(M,options,oo)
 % SPECIAL REQUIREMENTS
 %   none
 
-% Copyright (C) 2007-2012 Dynare Team
+% Copyright (C) 2007-2015 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -29,19 +29,10 @@ function planner_objective_value = evaluate_planner_objective(M,options,oo)
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
 dr = oo.dr;
-endo_nbr = M.endo_nbr;
 exo_nbr = M.exo_nbr;
 nstatic = M.nstatic;
 nspred = M.nspred;
-lead_lag_incidence = M.lead_lag_incidence;
 beta = get_optimal_policy_discount_factor(M.params,M.param_names);
-if options.ramsey_policy
-    i_org = (1:M.orig_endo_nbr)';
-else
-    i_org = (1:M.endo_nbr)';
-end
-ipred = find(lead_lag_incidence(M.maximum_lag,:))';
-order_var = dr.order_var;
     
 Gy = dr.ghx(nstatic+(1:nspred),:);
 Gu = dr.ghu(nstatic+(1:nspred),:);
@@ -51,11 +42,9 @@ gu(dr.order_var,:) = dr.ghu;
 
 ys = oo.dr.ys;
 
-u = oo.exo_simul(1,:)';
-
 [U,Uy,Uyy] = feval([M.fname '_objective_static'],ys,zeros(1,exo_nbr), ...
                    M.params);
-
+%second order terms
 Uyy = full(Uyy);
 
 [Uyygygy, err] = A_times_B_kronecker_C(Uyy,gy,gy,options.threads.kronecker.A_times_B_kronecker_C);
@@ -65,7 +54,7 @@ mexErrCheck('A_times_B_kronecker_C', err);
 [Uyygygu, err] = A_times_B_kronecker_C(Uyy,gy,gu,options.threads.kronecker.A_times_B_kronecker_C);
 mexErrCheck('A_times_B_kronecker_C', err);
 
-Wbar =U/(1-beta);
+Wbar =U/(1-beta); %steady state welfare
 Wy = Uy*gy/(eye(nspred)-beta*Gy);
 Wu = Uy*gu+beta*Wy*Gu;
 Wyy = Uyygygy/(eye(nspred*nspred)-beta*kron(Gy,Gy));
@@ -75,7 +64,7 @@ mexErrCheck('A_times_B_kronecker_C', err);
 mexErrCheck('A_times_B_kronecker_C', err);
 Wuu = Uyygugu+beta*Wyygugu;
 Wyu = Uyygygu+beta*Wyygygu;
-Wss = beta*Wuu*M.Sigma_e(:)/(1-beta);
+Wss = beta*Wuu*M.Sigma_e(:)/(1-beta); % at period 0, we are in steady state, so the deviation term only starts in period 1, thus the beta in front
 
 % initialize yhat1 at the steady state
 yhat1 = oo.steady_state;