diff --git a/Lib/test/test_tcl.py b/Lib/test/test_tcl.py
index 2dad5a0..49bca96 100644
--- a/Lib/test/test_tcl.py
+++ b/Lib/test/test_tcl.py
@@ -215,7 +215,6 @@
         self.assertRaises(TclError, tcl.exprstring, 'spam')
         check('', '0')
         check('8.2 + 6', '14.2')
-        check('2**64', str(2**64))
         check('3.1 + $a', '6.1')
         check('2 + "$a.$b"', '5.6')
         check('4*[llength "6 2"]', '8')
@@ -233,6 +232,8 @@
         check('"a\xc2\xbd\xe2\x82\xac"', 'a\xc2\xbd\xe2\x82\xac')
         check(r'"a\xbd\u20ac"', 'a\xc2\xbd\xe2\x82\xac')
         check(r'"a\0b"', 'a\xc0\x80b')
+        if tcl_version >= (8, 5):
+            check('2**64', str(2**64))
 
     def test_exprdouble(self):
         tcl = self.interp
@@ -248,7 +249,6 @@
         self.assertRaises(TclError, tcl.exprdouble, 'spam')
         check('', 0.0)
         check('8.2 + 6', 14.2)
-        check('2**64', float(2**64))
         check('3.1 + $a', 6.1)
         check('2 + "$a.$b"', 5.6)
         check('4*[llength "6 2"]', 8.0)
@@ -263,6 +263,8 @@
         check('[string length "a\xc2\xbd\xe2\x82\xac"]', 3.0)
         check(r'[string length "a\xbd\u20ac"]', 3.0)
         self.assertRaises(TclError, tcl.exprdouble, '"abc"')
+        if tcl_version >= (8, 5):
+            check('2**64', float(2**64))
 
     def test_exprlong(self):
         tcl = self.interp
@@ -278,7 +280,6 @@
         self.assertRaises(TclError, tcl.exprlong, 'spam')
         check('', 0)
         check('8.2 + 6', 14)
-        self.assertRaises(TclError, tcl.exprlong, '2**64')
         check('3.1 + $a', 6)
         check('2 + "$a.$b"', 5)
         check('4*[llength "6 2"]', 8)
@@ -293,6 +294,8 @@
         check('[string length "a\xc2\xbd\xe2\x82\xac"]', 3)
         check(r'[string length "a\xbd\u20ac"]', 3)
         self.assertRaises(TclError, tcl.exprlong, '"abc"')
+        if tcl_version >= (8, 5):
+            self.assertRaises(TclError, tcl.exprlong, '2**64')
 
     def test_exprboolean(self):
         tcl = self.interp
@@ -317,7 +320,6 @@
             check('"%s"' % value, True)
             check('{%s}' % value, True)
         check('8.2 + 6', True)
-        check('2**64', True)
         check('3.1 + $a', True)
         check('2 + "$a.$b"', True)
         check('4*[llength "6 2"]', True)
@@ -332,6 +334,8 @@
         check('[string length "a\xc2\xbd\xe2\x82\xac"]', True)
         check(r'[string length "a\xbd\u20ac"]', True)
         self.assertRaises(TclError, tcl.exprboolean, '"abc"')
+        if tcl_version >= (8, 5):
+            check('2**64', True)
 
     def test_passing_values(self):
         def passValue(value):
