diff --git a/src/ExprNode.cc b/src/ExprNode.cc
index c863502158b08904cace26c833ade75ea73efba7..91ca9360e34af3f6e2a602ffaac0654375b4cc3e 100644
--- a/src/ExprNode.cc
+++ b/src/ExprNode.cc
@@ -3418,10 +3418,10 @@ UnaryOpNode::substituteDiff(const lag_equivalence_table_t &nodes, subst_table_t
             {
               if (i == last_index)
                 symb_id = datatree.symbol_table.addDiffLagAuxiliaryVar(argsubst->idx, rit->second,
-                                                                       last_aux_var->symb_id, last_aux_var->lag);
+                                                                       last_aux_var->symb_id, last_aux_var->lag - 1);
               else
                 symb_id = datatree.symbol_table.addDiffLagAuxiliaryVar(new_aux_var->idx, rit->second,
-                                                                       last_aux_var->symb_id, last_aux_var->lag);
+                                                                       last_aux_var->symb_id, last_aux_var->lag - 1);
 
               new_aux_var = datatree.AddVariable(symb_id, 0);
               neweqs.push_back(datatree.AddEqual(new_aux_var,