diff --git a/ComputingTasks.cc b/ComputingTasks.cc
index 90f7e9a8749c65ee0bc3a153fa4fe5e91c07fa3b..f802f917d00816d443beb2b1d7b5c588ed9e510b 100644
--- a/ComputingTasks.cc
+++ b/ComputingTasks.cc
@@ -118,14 +118,6 @@ StochSimulStatement::checkPass(ModFileStructure &mod_file_struct)
   it = options_list.num_options.find("partial_information");
   if (it != options_list.num_options.end() && it->second == "1")
     mod_file_struct.partial_information = true;
-
-  // This (temporary) check is present in stoch_simul, osr and ramsey_policy
-  if (options_list.num_options.find("simul") != options_list.num_options.end()
-      && options_list.num_options.find("hp_filter") != options_list.num_options.end())
-    {
-      cerr << "ERROR: stoch_simul: HP filter is not yet implemented when computing empirical simulations" << endl;
-      exit(EXIT_FAILURE);
-    }
 }
 
 void
@@ -182,14 +174,6 @@ RamseyPolicyStatement::checkPass(ModFileStructure &mod_file_struct)
   it = options_list.num_options.find("partial_information");
   if (it != options_list.num_options.end() && it->second == "1")
     mod_file_struct.partial_information = true;
-
-  // This (temporary) check is present in stoch_simul, osr and ramsey_policy
-  if (options_list.num_options.find("simul") != options_list.num_options.end()
-      && options_list.num_options.find("hp_filter") != options_list.num_options.end())
-    {
-      cerr << "ERROR: ramsey_policy: HP filter is not yet implemented when computing empirical simulations" << endl;
-      exit(EXIT_FAILURE);
-    }
 }
 
 void
@@ -316,7 +300,6 @@ void
 PeriodsStatement::writeOutput(ostream &output, const string &basename) const
 {
   output << "options_.periods = " << periods << ";" << endl;
-  output << "options_.simul = 1;" << endl;
 }
 
 DsampleStatement::DsampleStatement(int val1_arg) : val1(val1_arg), val2(-1)
@@ -747,14 +730,6 @@ OsrStatement::checkPass(ModFileStructure &mod_file_struct)
   it = options_list.num_options.find("partial_information");
   if (it != options_list.num_options.end() && it->second == "1")
     mod_file_struct.partial_information = true;
-
-  // This (temporary) check is present in stoch_simul, osr and ramsey_policy
-  if (options_list.num_options.find("simul") != options_list.num_options.end()
-      && options_list.num_options.find("hp_filter") != options_list.num_options.end())
-    {
-      cerr << "ERROR: osr: HP filter is not yet implemented when computing empirical simulations" << endl;
-      exit(EXIT_FAILURE);
-    }
 }
 
 void
diff --git a/DynareBison.yy b/DynareBison.yy
index 925dc3e0171e67db72b687b5846c54764fbfaa94..61ca875f42f8b64596dcbaf59413c352af85f940 100644
--- a/DynareBison.yy
+++ b/DynareBison.yy
@@ -1655,13 +1655,12 @@ o_nomoments : NOMOMENTS { driver.option_num("nomoments", "1"); };
 o_irf : IRF EQUAL INT_NUMBER { driver.option_num("irf", $3); };
 o_hp_filter : HP_FILTER EQUAL INT_NUMBER { driver.option_num("hp_filter", $3); };
 o_hp_ngrid : HP_NGRID EQUAL INT_NUMBER { driver.option_num("hp_ngrid", $3); };
-o_periods : PERIODS EQUAL INT_NUMBER
-            { driver.option_num("periods", $3); driver.option_num("simul", "1"); };
+o_periods : PERIODS EQUAL INT_NUMBER { driver.option_num("periods", $3); };
 o_cutoff : CUTOFF EQUAL number { driver.cutoff($3); }
 o_markowitz : MARKOWITZ EQUAL number { driver.option_num("markowitz", $3); };
 o_minimal_solving_periods : MINIMAL_SOLVING_PERIODS EQUAL number { driver.option_num("minimal_solving_periods", $3); };
 o_mfs : MFS EQUAL INT_NUMBER { driver.mfs($3); };
-o_simul : SIMUL { driver.option_num("simul", "1"); };
+o_simul : SIMUL; // Do nothing, only here for backward compatibility
 o_simul_seed : SIMUL_SEED EQUAL INT_NUMBER { driver.option_num("simul_seed", $3); } ;
 o_qz_criterium : QZ_CRITERIUM EQUAL number { driver.option_num("qz_criterium", $3); };
 o_datafile : DATAFILE EQUAL filename { driver.option_str("datafile", $3); };
diff --git a/ParsingDriver.cc b/ParsingDriver.cc
index e4b000827b5aa8144b7c0c221c5fd575afdf801d..890f5741492bad899aae50efacdf609516f8df46 100644
--- a/ParsingDriver.cc
+++ b/ParsingDriver.cc
@@ -648,9 +648,7 @@ ParsingDriver::option_num(const string &name_option, string *opt)
 void
 ParsingDriver::option_num(const string &name_option, const string &opt)
 {
-  // Since "periods" option automatically sets "simul" option, we don't want to fail if user explicitly sets both "simul" and "periods"
-  if (name_option != "simul"
-      && (options_list.num_options.find(name_option) != options_list.num_options.end()))
+  if (options_list.num_options.find(name_option) != options_list.num_options.end())
     error("option " + name_option + " declared twice");
 
   if ((name_option == "periods") && mod_file->block)