diff --git a/DynamicModel.cc b/DynamicModel.cc
index 9e767fad46501bba2701f67791adfb5c55f5791b..c5480aaa5977b668e811924c15178e8c16b40504 100644
--- a/DynamicModel.cc
+++ b/DynamicModel.cc
@@ -4202,6 +4202,13 @@ DynamicModel::addStaticOnlyEquation(expr_t eq, int lineno)
   static_only_equations_lineno.push_back(lineno);
 }
 
+void
+DynamicModel::reindex(SymbolTable &orig_symbol_table)
+{
+  ModelTree::reindex(orig_symbol_table);
+  reindexStaticOnlyEquations(orig_symbol_table);
+}
+
 void
 DynamicModel::reindexStaticOnlyEquations(SymbolTable &orig_symbol_table)
 {
diff --git a/DynamicModel.hh b/DynamicModel.hh
index 835f09b70eb090a45df7b03354e3878874398397..7adda7fd36a7fa95fc6acc3269892ff747d348e6 100644
--- a/DynamicModel.hh
+++ b/DynamicModel.hh
@@ -244,6 +244,9 @@ public:
   //! Adds an equation marked as [static]
   void addStaticOnlyEquation(expr_t eq, int lineno);
 
+  //! reindex Dynamic Model after removal of extra exogenous
+  void reindex(SymbolTable &orig_symbol_table);
+
   //! reindex equations marked as [static]
   void reindexStaticOnlyEquations(SymbolTable &orig_symbol_table);
 
diff --git a/ModFile.cc b/ModFile.cc
index bc9cea5f069da0c9abbb7f9af7d914bf17e08757..ceb68724ce4d7ebad1ceed3fa43b68a35d64ff5c 100644
--- a/ModFile.cc
+++ b/ModFile.cc
@@ -314,8 +314,6 @@ ModFile::transformPass(bool nostrict)
       SymbolTable orig_symbol_table = symbol_table;
       symbol_table.rmExo(unusedExo);
       dynamic_model.reindex(orig_symbol_table);
-      dynamic_model.reindexStaticOnlyEquations(orig_symbol_table);
-
       external_functions_table.reindex(symbol_table, orig_symbol_table);
 
       vector<Statement *> orig_statements = statements;