diff --git a/pytools/lex.py b/pytools/lex.py
index a1c4914129f9d65201274e7b71b28c4f8143bf3d..3322d0c6d0f88d3d98efe14a34622f0353df5eb6 100644
--- a/pytools/lex.py
+++ b/pytools/lex.py
@@ -136,7 +136,9 @@ class LexIterator(object):
         return self.index + i >= len(self.lexed)
 
     def is_next(self, tag, i=0):
-        return self.next_tag(i) is tag
+        return (
+                self.index + i < len(self.lexed)
+                and self.next_tag(i) is tag)
 
     def raise_parse_error(self, msg):
         if self.is_at_end():