diff --git a/pymbolic/parser.py b/pymbolic/parser.py
index e5f1269ed09e8a75969ad1eb945bbaab96ddc54f..864cfd9a241c6a3fd1b7239d07ffd6bf941e1526 100644
--- a/pymbolic/parser.py
+++ b/pymbolic/parser.py
@@ -45,10 +45,12 @@ class Parser:
     lex_table = [
             (_equal, pytools.lex.RE(r"==")),
             (_notequal, pytools.lex.RE(r"!=")),
-            (_less, pytools.lex.RE(r"\<")),
+
             (_lessequal, pytools.lex.RE(r"\<=")),
-            (_greater, pytools.lex.RE(r"\>")),
             (_greaterequal, pytools.lex.RE(r"\>=")),
+            # must be before
+            (_less, pytools.lex.RE(r"\<")),
+            (_greater, pytools.lex.RE(r"\>")),
 
             (_and, pytools.lex.RE(r"and")),
             (_or, pytools.lex.RE(r"or")),
diff --git a/test/test_pymbolic.py b/test/test_pymbolic.py
index e9a756cd1faa4121bf98d001d6d50b8240e45db7..396fda0d8478816bc3504ef44a7e75d2cf018aa6 100644
--- a/test/test_pymbolic.py
+++ b/test/test_pymbolic.py
@@ -138,6 +138,9 @@ def test_parser():
     print repr(parse("d4knl0"))
     print repr(parse("0."))
     print repr(parse("0.e1"))
+    print repr(parse("0.e1"))
+    print repr(parse("a >= 1"))
+    print repr(parse("a <= 1"))