diff --git a/src/ExprNode.cc b/src/ExprNode.cc
index cb6c94dc8f63824a867f9f76a64797a5b09776f0..5ed78458dad8cd1a4f43d56ec0d67e25f19a00cb 100644
--- a/src/ExprNode.cc
+++ b/src/ExprNode.cc
@@ -2521,7 +2521,10 @@ UnaryOpNode::compile(ostream &CompileCode, unsigned int &instruction_number,
 void
 UnaryOpNode::collectDynamicVariables(SymbolType type_arg, set<pair<int, int> > &result) const
 {
-  arg->collectDynamicVariables(type_arg, result);
+  if (op_code == oDiff)
+    arg->decreaseLeadsLags(1)->collectDynamicVariables(type_arg, result);
+  else
+    arg->collectDynamicVariables(type_arg, result);
 }
 
 pair<int, expr_t>