diff --git a/Lib/test/test_b1.py b/Lib/test/test_b1.py
index b780c72..e5611e5 100644
--- a/Lib/test/test_b1.py
+++ b/Lib/test/test_b1.py
@@ -42,9 +42,9 @@
 if cmp(1, 1) <> 0: raise TestFailed, 'cmp(1, 1)'
 
 print 'coerce'
-if coerce(1, 1.1) <> (1.0, 1.1): raise TestFailed, 'coerce(1, 1.1)'
+if fcmp(coerce(1, 1.1), (1.0, 1.1)): raise TestFailed, 'coerce(1, 1.1)'
 if coerce(1, 1L) <> (1L, 1L): raise TestFailed, 'coerce(1, 1L)'
-if coerce(1L, 1.1) <> (1.0, 1.1): raise TestFailed, 'coerce(1L, 1.1)'
+if fcmp(coerce(1L, 1.1), (1.0, 1.1)): raise TestFailed, 'coerce(1L, 1.1)'
 
 print 'dir'
 x = 1
@@ -68,10 +68,14 @@
 if divmod(12L, -7) <> (-2L, -2): raise TestFailed, 'divmod(12L, -7)'
 if divmod(-12L, -7) <> (1L, -5): raise TestFailed, 'divmod(-12L, -7)'
 #
-if divmod(3.25, 1.0) <> (3.0, 0.25): raise TestFailed, 'divmod(3.25, 1.0)'
-if divmod(-3.25, 1.0) <> (-4.0, 0.75): raise TestFailed, 'divmod(-3.25, 1.0)'
-if divmod(3.25, -1.0) <> (-4.0, -0.75): raise TestFailed, 'divmod(3.25, -1.0)'
-if divmod(-3.25, -1.0) <> (3.0, -0.25): raise TestFailed, 'divmod(-3.25, -1.0)'
+if fcmp(divmod(3.25, 1.0), (3.0, 0.25)):
+	raise TestFailed, 'divmod(3.25, 1.0)'
+if fcmp(divmod(-3.25, 1.0), (-4.0, 0.75)):
+	raise TestFailed, 'divmod(-3.25, 1.0)'
+if fcmp(divmod(3.25, -1.0), (-4.0, -0.75)):
+	raise TestFailed, 'divmod(3.25, -1.0)'
+if fcmp(divmod(-3.25, -1.0), (3.0, -0.25)):
+	raise TestFailed, 'divmod(-3.25, -1.0)'
 
 print 'eval'
 if eval('1+1') <> 2: raise TestFailed, 'eval(\'1+1\')'
diff --git a/Lib/test/test_b2.py b/Lib/test/test_b2.py
index 568ed97..f376f46 100644
--- a/Lib/test/test_b2.py
+++ b/Lib/test/test_b2.py
@@ -71,21 +71,21 @@
 if pow(-2L,2) <> 4: raise TestFailed, 'pow(-2L,2)'
 if pow(-2L,3) <> -8: raise TestFailed, 'pow(-2L,3)'
 #
-if pow(0.,0) <> 1.: raise TestFailed, 'pow(0.,0)'
-if pow(0.,1) <> 0.: raise TestFailed, 'pow(0.,1)'
-if pow(1.,0) <> 1.: raise TestFailed, 'pow(1.,0)'
-if pow(1.,1) <> 1.: raise TestFailed, 'pow(1.,1)'
+if fcmp(pow(0.,0), 1.): raise TestFailed, 'pow(0.,0)'
+if fcmp(pow(0.,1), 0.): raise TestFailed, 'pow(0.,1)'
+if fcmp(pow(1.,0), 1.): raise TestFailed, 'pow(1.,0)'
+if fcmp(pow(1.,1), 1.): raise TestFailed, 'pow(1.,1)'
 #
-if pow(2.,0) <> 1.: raise TestFailed, 'pow(2.,0)'
-if pow(2.,10) <> 1024.: raise TestFailed, 'pow(2.,10)'
-if pow(2.,20) <> 1024.*1024.: raise TestFailed, 'pow(2.,20)'
-if pow(2.,30) <> 1024.*1024.*1024.: raise TestFailed, 'pow(2.,30)'
+if fcmp(pow(2.,0), 1.): raise TestFailed, 'pow(2.,0)'
+if fcmp(pow(2.,10), 1024.): raise TestFailed, 'pow(2.,10)'
+if fcmp(pow(2.,20), 1024.*1024.): raise TestFailed, 'pow(2.,20)'
+if fcmp(pow(2.,30), 1024.*1024.*1024.): raise TestFailed, 'pow(2.,30)'
 #
 # XXX These don't work -- negative float to the float power...
-#if pow(-2.,0) <> 1.: raise TestFailed, 'pow(-2.,0)'
-#if pow(-2.,1) <> -2.: raise TestFailed, 'pow(-2.,1)'
-#if pow(-2.,2) <> 4.: raise TestFailed, 'pow(-2.,2)'
-#if pow(-2.,3) <> -8.: raise TestFailed, 'pow(-2.,3)'
+#if fcmp(pow(-2.,0), 1.): raise TestFailed, 'pow(-2.,0)'
+#if fcmp(pow(-2.,1), -2.): raise TestFailed, 'pow(-2.,1)'
+#if fcmp(pow(-2.,2), 4.): raise TestFailed, 'pow(-2.,2)'
+#if fcmp(pow(-2.,3), -8.): raise TestFailed, 'pow(-2.,3)'
 
 print 'range'
 if range(3) <> [0, 1, 2]: raise TestFailed, 'range(3)'
diff --git a/Lib/test/test_support.py b/Lib/test/test_support.py
index c6d0611..7a76664 100644
--- a/Lib/test/test_support.py
+++ b/Lib/test/test_support.py
@@ -18,5 +18,24 @@
 		except os.error:
 			pass
 
+FUZZ = 1e-6
+
+def fcmp(x, y): # fuzzy comparison function
+	if type(x) == type(0.0) or type(y) == type(0.0):
+		try:
+			x, y = coerce(x, y)
+			fuzz = (abs(x) + abs(y)) * FUZZ
+			if abs(x-y) <= fuzz:
+				return 0
+		except:
+			pass
+	elif type(x) == type(y) and type(x) in (type(()), type([])):
+		for i in range(min(len(x), len(y))):
+			outcome = fcmp(x[i], y[i])
+			if outcome <> 0:
+				return outcome
+		return cmp(len(x), len(y))
+	return cmp(x, y)
+
 TESTFN = '@test' # Filename used for testing
 from os import unlink
