diff --git a/src/DynamicModel.cc b/src/DynamicModel.cc
index cf12da4779cafab79010c2df9ce1ae69555b098d..32110a3b66229bcffcd1fb7163f30f3244201b41 100644
--- a/src/DynamicModel.cc
+++ b/src/DynamicModel.cc
@@ -5502,9 +5502,9 @@ DynamicModel::createVariableMapping(int orig_eq_nbr)
       equations[ii]->collectVariables(SymbolType::exogenous, eqvars);
       for (auto eqvar : eqvars)
         {
-          while (symbol_table.isAuxiliaryVariable(eqvar))
-            eqvar = symbol_table.getOrigSymbIdForAuxVar(eqvar);
-          variableMapping[eqvar].emplace(ii);
+          eqvar = symbol_table.getUltimateOrigSymbID(eqvar);
+          if (eqvar >= 0 && !symbol_table.isAuxiliaryVariable(eqvar))
+            variableMapping[eqvar].emplace(ii);
         }
     }
 }