diff --git a/ComputingTasks.cc b/ComputingTasks.cc
index a1d1ff426bf6fc57bb72eb422d149e10a9f3aa7b..f45a4e3177b0ee94eb2138d9bf92d50b8d1b6710 100644
--- a/ComputingTasks.cc
+++ b/ComputingTasks.cc
@@ -270,16 +270,20 @@ VarModelStatement::VarModelStatement(const SymbolList &symbol_list_arg,
 void
 VarModelStatement::getVarModelNameAndVarList(map<string, pair<SymbolList, int> > &var_model_info)
 {
-  var_model_info[name] = make_pair(symbol_list, atoi(options_list.num_options.find("var.order")->second.c_str()));
+  OptionsList::num_options_t::const_iterator it = options_list.num_options.find("var.order");
+  if (it != options_list.num_options.end())
+    var_model_info[name] = make_pair(symbol_list, atoi(it->second.c_str()));
 }
 
 void
 VarModelStatement::checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings)
 {
+  OptionsList::vec_str_options_t::const_iterator itvs = options_list.vector_str_options.find("var.eqtags");
   OptionsList::num_options_t::const_iterator it = options_list.num_options.find("var.order");
-  if (it == options_list.num_options.end())
+  if ((it == options_list.num_options.end() && itvs == options_list.vector_str_options.end())
+      || (it != options_list.num_options.end() && itvs != options_list.vector_str_options.end()))
     {
-      cerr << "ERROR: You must provide the order option to the var_model statement." << endl;
+      cerr << "ERROR: You must provide either the order or eqtags option to the var_model statement, but not both." << endl;
       exit(EXIT_FAILURE);
     }