diff --git a/.travis.yml b/.travis.yml
index ab462ab..6d0996a 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -2,8 +2,8 @@ language: python
 python:
   - "2.6"
   - "2.7"
-  - "3.2"
   - "3.3"
+  - "3.4"
 
 install:
   - "bash .travis.install"
diff --git a/ometa/test/test_pymeta.py b/ometa/test/test_pymeta.py
index ed7e57f..9a83ba7 100644
--- a/ometa/test/test_pymeta.py
+++ b/ometa/test/test_pymeta.py
@@ -359,6 +359,23 @@ def test_leftrecursion(self):
          self.assertEqual(g.num("32767"), 32767)
 
 
+    def test_mutual_leftrecursion(self):
+         g = self.compile("""
+               num ::= (<num>:n <digit>:d   => n * 10 + d
+                      | <digit>)
+               digit ::= :x ?(x.isdigit()) => int(x)
+               x ::= <expr>
+               expr ::= <x>:e '-' <num>:n => e - n
+                       | <num>
+              """)
+         self.assertEqual(g.expr("3"), 3)
+         self.assertEqual(g.expr("3-2"), 1)
+         self.assertEqual(g.expr("3-2-1"), 0)
+         self.assertEqual(g.x("3"), 3)
+         self.assertEqual(g.x("3-2"), 1)
+         self.assertEqual(g.x("3-2-1"), 0)
+
+
     def test_characterVsSequence(self):
         """
         Characters (in single-quotes) are not regarded as sequences.
@@ -806,6 +823,23 @@ def test_leftrecursion(self):
          self.assertEqual(g.num("32767"), 32767)
 
 
+    def test_mutual_leftrecursion(self):
+         g = self.compile("""
+               num = (num:n digit:d   -> n * 10 + d
+                      | digit)
+               digit = :x ?(x.isdigit()) -> int(x)
+               x = expr
+               expr = x:e '-' num:n -> e - n
+                       | num
+              """)
+         self.assertEqual(g.expr("3"), 3)
+         self.assertEqual(g.expr("3-2"), 1)
+         self.assertEqual(g.expr("3-2-1"), 0)
+         self.assertEqual(g.x("3"), 3)
+         self.assertEqual(g.x("3-2"), 1)
+         self.assertEqual(g.x("3-2-1"), 0)
+
+
     def test_characterVsSequence(self):
         """
         Characters (in single-quotes) are not regarded as sequences.
@@ -1011,6 +1045,25 @@ def test_leftrecursion(self):
          self.assertEqual(g.num("3"), 3)
          self.assertEqual(g.num("32767"), 32767)
 
+    def test_mutual_leftrecursion(self):
+        g = self.compile("""
+              num = (num:n digit:d   -> makeInt(n, d)
+                     | digit)
+              digit = :x ?(isdigit(x)) -> int(x)
+              x = expr
+              expr = x:e '-' num:n -> subtract(e, n)
+                      | num
+             """, {"makeInt": lambda x, y: x * 10 + y,
+                   "isdigit": lambda x: x.isdigit(),
+                   "subtract": lambda x, y: x-y})
+        self.assertEqual(g.expr("3"), 3)
+        self.assertEqual(g.expr("3-2"), 1)
+        self.assertEqual(g.expr("3-2-1"), 0)
+        self.assertEqual(g.x("3"), 3)
+        self.assertEqual(g.x("3-2"), 1)
+        self.assertEqual(g.x("3-2-1"), 0)
+
+
     def test_characterVsSequence(self):
         """
         Characters (in single-quotes) are not regarded as sequences.