diff --git a/src/ExprNode.cc b/src/ExprNode.cc
index 8969d448e6dac67966d23b58ad1cec3558eea131..6eb9c5062da734b82c289062aa946d1afe2f9b57 100644
--- a/src/ExprNode.cc
+++ b/src/ExprNode.cc
@@ -22,6 +22,7 @@
 #include <cassert>
 #include <cmath>
 #include <utility>
+#include <limits>
 
 #include "ExprNode.hh"
 #include "DataTree.hh"
@@ -559,19 +560,19 @@ NumConstNode::maxExoLag() const
 int
 NumConstNode::maxLead() const
 {
-  return 0;
+  return numeric_limits<int>::min();
 }
 
 int
 NumConstNode::maxLag() const
 {
-  return 0;
+  return numeric_limits<int>::min();
 }
 
 int
 NumConstNode::maxLagWithDiffsExpanded() const
 {
-  return 0;
+  return numeric_limits<int>::min();
 }
 
 expr_t
diff --git a/src/ExprNode.hh b/src/ExprNode.hh
index c7326d02a8bfe76ecfc8a618171084cc34ffa975..007459e623d128baba88239874bf9dd5a7415f8d 100644
--- a/src/ExprNode.hh
+++ b/src/ExprNode.hh
@@ -407,12 +407,14 @@ class ExprNode
 
       //! Returns the maximum lead of endo/exo/exodet in this expression
       /*! A negative value means that the expression contains only lagged
-          variables. */
+          variables. A value of numeric_limits<int>::min() means that there is
+          no variable. */
       virtual int maxLead() const = 0;
 
       //! Returns the maximum lag of endo/exo/exodet in this expression
       /*! A negative value means that the expression contains only leaded
-          variables. */
+          variables. A value of numeric_limits<int>::min() means that there is
+          no variable. */
       virtual int maxLag() const = 0;
 
       //! Returns the maximum lag of endo/exo/exodet, as if diffs were expanded