diff --git a/Lib/test/test_math.py b/Lib/test/test_math.py
index 81080f2..5b914d5 100644
--- a/Lib/test/test_math.py
+++ b/Lib/test/test_math.py
@@ -5,6 +5,7 @@
 import unittest
 import math
 import os
+import platform
 import sys
 import struct
 import sysconfig
@@ -652,10 +653,6 @@
     @requires_IEEE_754
     def testLog2(self):
         self.assertRaises(TypeError, math.log2)
-        # Check that we get exact equality for log2 of powers of 2.
-        actual = [math.log2(math.ldexp(1.0, n)) for n in range(-1074, 1024)]
-        expected = [float(n) for n in range(-1074, 1024)]
-        self.assertEqual(actual, expected)
 
         # Check some integer values
         self.assertEqual(math.log2(1), 0.0)
@@ -671,6 +668,16 @@
         self.assertRaises(ValueError, math.log2, NINF)
         self.assertTrue(math.isnan(math.log2(NAN)))
 
+    @requires_IEEE_754
+    @unittest.skipIf(sys.platform == 'darwin'
+                     and platform.mac_ver()[0].startswith('10.4.'),
+                     'Mac OS X Tiger log2() is not accurate enough')
+    def testLog2Exact(self):
+        # Check that we get exact equality for log2 of powers of 2.
+        actual = [math.log2(math.ldexp(1.0, n)) for n in range(-1074, 1024)]
+        expected = [float(n) for n in range(-1074, 1024)]
+        self.assertEqual(actual, expected)
+
     def testLog10(self):
         self.assertRaises(TypeError, math.log10)
         self.ftest('log10(0.1)', math.log10(0.1), -1)
