diff --git a/src/ExprNode.cc b/src/ExprNode.cc
index fa0cdf4275616fce7c82c59b91fa8de01a423af5..f6393c7d49a6ab442f4f40abde4cb67ecd378af6 100644
--- a/src/ExprNode.cc
+++ b/src/ExprNode.cc
@@ -2954,7 +2954,10 @@ UnaryOpNode::substituteDiff(DataTree &static_datatree, diff_table_t &diff_table,
           for (int i = last_arg_max_lag; i > rit->first; i--)
             {
               if (vn == NULL)
-                symb_id = datatree.symbol_table.addDiffAuxiliaryVar(new_aux_var->idx, new_aux_var);
+                if (i == last_arg_max_lag)
+                  symb_id = datatree.symbol_table.addDiffAuxiliaryVar(argsubst->idx, argsubst);
+                else
+                  symb_id = datatree.symbol_table.addDiffAuxiliaryVar(new_aux_var->idx, new_aux_var);
               else
                 if (i == last_arg_max_lag)
                   symb_id = datatree.symbol_table.addDiffAuxiliaryVar(argsubst->idx, argsubst,