diff --git a/ModFile.cc b/ModFile.cc
index 71f5f33a05e98c263f712671854012ec8b90bbf1..39f9b5b17c46d9eb4d2bc1f8b876b028627c265e 100644
--- a/ModFile.cc
+++ b/ModFile.cc
@@ -813,7 +813,8 @@ ModFile::writeOutputFiles(const string &basename, bool clear_all, bool clear_glo
 
   mOutputFile << "M_.orig_eq_nbr = " << mod_file_struct.orig_eq_nbr << ";" << endl
               << "M_.eq_nbr = " << dynamic_model.equation_number() << ";" << endl
-              << "M_.ramsey_eq_nbr = " << mod_file_struct.ramsey_eq_nbr << ";" << endl;
+              << "M_.ramsey_eq_nbr = " << mod_file_struct.ramsey_eq_nbr << ";" << endl
+              << "M_.set_auxiliary_variables = exist(['./' M_.fname '_set_auxiliary_variables.m'], 'file') == 2;" << endl;
 
   if (dynamic_model.equation_number() > 0)
     {
diff --git a/StaticModel.cc b/StaticModel.cc
index dc24f6ee6b44785faf88192efb8266d148ec2a2d..97f4f38b5e87ea846b5ba6030985c3e8c2472d16 100644
--- a/StaticModel.cc
+++ b/StaticModel.cc
@@ -2130,6 +2130,11 @@ StaticModel::writeAuxVarInitval(ostream &output, ExprNodeOutputType output_type)
 void
 StaticModel::writeSetAuxiliaryVariables(const string &basename, const bool julia) const
 {
+  ostringstream output_func_body;
+  writeAuxVarRecursiveDefinitions(output_func_body, oMatlabStaticModel);
+
+  if (output_func_body.str().empty())
+    return;
 
   string func_name = basename + "_set_auxiliary_variables";
   string filename = julia ? func_name + ".jl" : func_name + ".m";
@@ -2148,10 +2153,8 @@ StaticModel::writeSetAuxiliaryVariables(const string &basename, const bool julia
          << comment << " Status : Computes static model for Dynare" << endl
          << comment << endl
          << comment << " Warning : this file is generated automatically by Dynare" << endl
-         << comment << "           from model file (.mod)" << endl
-         << endl;
-
-  writeAuxVarRecursiveDefinitions(output, oMatlabStaticModel);
+         << comment << "           from model file (.mod)" << endl << endl
+         << output_func_body.str();
 }
 
 void