diff --git a/src/DynamicModel.cc b/src/DynamicModel.cc
index 729e848222f3ec2b9ed657e30d4dd0ebea005f16..67510c68795cdba9cee95039cb24fd64ec0c7991 100644
--- a/src/DynamicModel.cc
+++ b/src/DynamicModel.cc
@@ -3093,6 +3093,18 @@ DynamicModel::writeOutput(ostream &output, const string &basename, bool block_de
          << (static_only_equations.size() > 0 ? "true" :"false")
          << ";" << endl;
 
+  // Say if model contains an external function call
+  bool has_external_function = false;
+  for (size_t eq = 0; eq < equations.size(); eq++)
+    if (equations[eq]->containsExternalFunction())
+      {
+        has_external_function = true;
+        break;
+      }
+  output << modstruct << "has_external_function = "
+         << (has_external_function ? "true" : "false")
+         << ';' << endl;
+
   vector<int> state_var;
   for (int endoID = 0; endoID < symbol_table.endo_nbr(); endoID++)
     // Loop on periods