diff -r c7c2b677ac1b -r 68cf3c217269 Lib/test/test_int_jy.py --- a/Lib/test/test_int_jy.py Sat Jun 21 22:51:38 2014 -0600 +++ b/Lib/test/test_int_jy.py Sun Jun 22 10:35:31 2014 -0700 @@ -11,6 +11,11 @@ def test_type_matches(self): self.assert_(isinstance(1, types.IntType)) + def test_int_pow(self): + self.assertEquals(pow(10, 10, None), 10000000000L) + self.assertEquals(int.__pow__(10, 10, None), 10000000000L) + self.assertEquals((10).__pow__(10, None), 10000000000L) + def test_main(): test_support.run_unittest(IntTestCase) diff -r c7c2b677ac1b -r 68cf3c217269 src/org/python/core/PyInteger.java --- a/src/org/python/core/PyInteger.java Sat Jun 21 22:51:38 2014 -0600 +++ b/src/org/python/core/PyInteger.java Sun Jun 22 10:35:31 2014 -0700 @@ -574,10 +574,14 @@ return null; } - if (modulo != null && !canCoerce(modulo)) { + if ((modulo != null && modulo != Py.None) && !canCoerce(modulo)) { return null; } + if (modulo == Py.None) { + return __builtin__.pow(this, right); + } + return _pow(getValue(), coerce(right), modulo, this, right); }