diff --git a/ParsingDriver.cc b/ParsingDriver.cc
index dcd1b6d343c229c463effc9ffcea237e15bf3cb9..c0f2dc538529a659bee3da972cb362622b04a81e 100644
--- a/ParsingDriver.cc
+++ b/ParsingDriver.cc
@@ -617,8 +617,9 @@ ParsingDriver::option_num(const string &name_option, string *opt)
 void
 ParsingDriver::option_num(const string &name_option, const string &opt)
 {
-  if (options_list.num_options.find(name_option)
-      != options_list.num_options.end())
+  // 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()))
     error("option " + name_option + " declared twice");
 
   if ((name_option == "periods") && (mod_file->model_tree.mode == eSparseDLLMode || mod_file->model_tree.mode == eSparseMode))