diff --git a/ExprNode.cc b/ExprNode.cc
index c81a24d324900cfa6640ca83c453267cb385df1d..855f6d57a072355706692fbb49fbf08492ca3533 100644
--- a/ExprNode.cc
+++ b/ExprNode.cc
@@ -4316,13 +4316,20 @@ BinaryOpNode::substituteAdlAndDiff() const
 
   expr_t arg1subst = arg1->substituteAdlAndDiff();
   int i = 1;
-  int param_symb_id = datatree.symbol_table.getID(adlparam + "_lag_" + to_string(i));
+  ostringstream inttostr;
+  inttostr << i;
+  int param_symb_id = datatree.symbol_table.getID(adlparam + "_lag_" + inttostr.str());
   expr_t retval = datatree.AddTimes(datatree.AddVariable(param_symb_id, 0), arg1subst->decreaseLeadsLags(i));
   i++;
-  for (; i <= (int) arg2->eval(eval_context_t()); i++)
-    retval = datatree.AddPlus(retval,
-                              datatree.AddTimes(datatree.AddVariable(datatree.symbol_table.getID(adlparam + "_lag_" + to_string(i)), 0),
-                                                arg1subst->decreaseLeadsLags(i)));
+  for (; i <= (int) arg2->eval(eval_context_t());)
+    {
+      inttostr.clear();
+      inttostr.str("");
+      inttostr << i++;
+      retval = datatree.AddPlus(retval,
+                                datatree.AddTimes(datatree.AddVariable(datatree.symbol_table.getID(adlparam + "_lag_" + inttostr.str()), 0),
+                                                  arg1subst->decreaseLeadsLags(i)));
+    }
   return retval;
 }
 
diff --git a/ParsingDriver.cc b/ParsingDriver.cc
index 9072fc3b8b701cd075547cd580e3277fa096b8d1..dc0943cb2741f357e93c8c8d53d5935988a0f94c 100644
--- a/ParsingDriver.cc
+++ b/ParsingDriver.cc
@@ -2598,8 +2598,15 @@ ParsingDriver::add_adl(expr_t arg1, string *name, string *lag)
                                 data_tree->AddNonNegativeConstant(*lag));
 
   // Declare parameters here so that parameters can be initialized after the model block
-  for (int i = 0; i < atoi(lag->c_str()); i++)
-    declare_parameter(new string(*name + "_lag_" + to_string(i+1)));
+  int i = 0;
+  ostringstream inttostr;
+  for (; i < atoi(lag->c_str()); i++)
+    {
+      inttostr.clear();
+      inttostr.str("");
+      inttostr << i + 1;
+      declare_parameter(new string(*name + "_lag_" + inttostr.str()));
+    }
 
   delete name;
   delete lag;