diff --git a/src/ModelTree.cc b/src/ModelTree.cc
index ec93b9d6c544a13a890c27651413afd1526cfdfe..e39f190a0b452564454c120e3a1a4bc2b2794fff 100644
--- a/src/ModelTree.cc
+++ b/src/ModelTree.cc
@@ -1964,23 +1964,24 @@ ModelTree::simplifyEquations()
 {
   size_t last_subst_table_size = 0;
   map<VariableNode *, NumConstNode *> subst_table;
-  // Equations with tags are excluded, in particular because of MCPs, see dynare#1697
-  findConstantEquationsWithoutTags(subst_table);
+  // Equations with “mcp” tag are excluded, see dynare#1697
+  findConstantEquationsWithoutMcpTag(subst_table);
   while (subst_table.size() != last_subst_table_size)
     {
       last_subst_table_size = subst_table.size();
       for (auto &equation : equations)
         equation = dynamic_cast<BinaryOpNode *>(equation->replaceVarsInEquation(subst_table));
       subst_table.clear();
-      findConstantEquationsWithoutTags(subst_table);
+      findConstantEquationsWithoutMcpTag(subst_table);
     }
 }
 
 void
-ModelTree::findConstantEquationsWithoutTags(map<VariableNode *, NumConstNode *> &subst_table) const
+ModelTree::findConstantEquationsWithoutMcpTag(map<VariableNode *, NumConstNode *> &subst_table) const
 {
   for (size_t i = 0; i < equations.size(); i++)
-    if (getEquationTags(i).empty())
+    if (auto tags = getEquationTags(i);
+        tags.find("mcp") == tags.end())
       equations[i]->findConstantEquations(subst_table);
 }
 
diff --git a/src/ModelTree.hh b/src/ModelTree.hh
index b6dfbc49b6eb08680270fbadd1237922776e2781..8ae42108f671f13a9d3837464bab00c5d2f4e0fe 100644
--- a/src/ModelTree.hh
+++ b/src/ModelTree.hh
@@ -412,14 +412,13 @@ public:
   bool isNonstationary(int symb_id) const;
   void set_cutoff_to_zero();
   //! Simplify model equations: if a variable is equal to a constant, replace that variable elsewhere in the model
-  /*! Equations with tags are excluded, in particular because of MCPs, see
-      dynare#1697 */
+  /*! Equations with MCP tags are excluded, see dynare#1697 */
   void simplifyEquations();
   /*! Reorder auxiliary variables so that they appear in recursive order in
       set_auxiliary_variables.m and dynamic_set_auxiliary_series.m */
   void reorderAuxiliaryEquations();
-  //! Find equations of the form “variable=constant”, excluding equations with tags
-  void findConstantEquationsWithoutTags(map<VariableNode *, NumConstNode *> &subst_table) const;
+  //! Find equations of the form “variable=constant”, excluding equations with “mcp” tag (see dynare#1697)
+  void findConstantEquationsWithoutMcpTag(map<VariableNode *, NumConstNode *> &subst_table) const;
   //! Helper for writing the Jacobian elements in MATLAB and C
   /*! Writes either (i+1,j+1) or [i+j*no_eq] */
   void jacobianHelper(ostream &output, int eq_nb, int col_nb, ExprNodeOutputType output_type) const;