diff --git a/src/ExprNode.cc b/src/ExprNode.cc
index ced32d14234a3d9bf2e4eca692361f9fde84e215..27b1253ac94e9288fcb06a4d0e41fff94a1a991d 100644
--- a/src/ExprNode.cc
+++ b/src/ExprNode.cc
@@ -3489,6 +3489,12 @@ UnaryOpNode::substituteUnaryOpNodes(DataTree &static_datatree, diff_table_t &nod
   if (it == nodes.end())
     return buildSimilarUnaryOpNode(argsubst, datatree);
 
+  if (arg->maxLead() > 0)
+    {
+      cerr << "Cannot substitue unary operations that contain leads" << endl;
+      exit(EXIT_FAILURE);
+    }
+
   string unary_op = "";
   switch (op_code)
     {