diff --git a/preprocessor/DynamicModel.cc b/preprocessor/DynamicModel.cc
index a3efc2a6470990fe4a6ccbfbded23f84e65c1fbf..4bb697c4c4a5cf4dcab3256a3f7fca892a9cf895 100644
--- a/preprocessor/DynamicModel.cc
+++ b/preprocessor/DynamicModel.cc
@@ -3603,8 +3603,14 @@ DynamicModel::substituteLeadLagInternal(aux_var_t type, bool deterministic_model
   for (int i = 0; i < (int) neweqs.size(); i++)
     addEquation(neweqs[i]);
 
-  // Add the new set of equations at the *beginning* of aux_equations
-  copy(neweqs.rbegin(), neweqs.rend(), front_inserter(aux_equations));
+  // Order of auxiliary variable definition equations:
+  //  - expectation (entered before this function is called)
+  //  - lead variables from lower lead to higher lead (need to be listed in reverse order)
+  //  - lag variables from lower lag to higher lag
+  if ((type == avEndoLead) || (type == avExoLead))
+    copy(neweqs.rbegin(), neweqs.rend(), back_inserter(aux_equations));
+  else
+    copy(neweqs.begin(), neweqs.end(), back_inserter(aux_equations));
 
   if (neweqs.size() > 0)
     {
diff --git a/preprocessor/SteadyStateModel.cc b/preprocessor/SteadyStateModel.cc
index a222aa32764717ddb4ba47f0f9e0d6c2c42ee8b0..d665428bb99830ae195258c0022ed4590762e595 100644
--- a/preprocessor/SteadyStateModel.cc
+++ b/preprocessor/SteadyStateModel.cc
@@ -121,7 +121,7 @@ SteadyStateModel::writeSteadyStateFile(const string &basename, bool ramsey_polic
   output << ", exo_)" << endl
          << "% Steady state generated by Dynare preprocessor" << endl;
   if (!ramsey_policy)
-    output << "    ys_=zeros(" << symbol_table.orig_endo_nbr() << ",1);" << endl;
+    output << "    ys_=zeros(" << symbol_table.endo_nbr() << ",1);" << endl;
   output << "    global M_" << endl;
 
   for (size_t i = 0; i < recursive_order.size(); i++)