diff --git a/Lib/test/test_float.py b/Lib/test/test_float.py
index 2b6bd78..0b1ae96 100644
--- a/Lib/test/test_float.py
+++ b/Lib/test/test_float.py
@@ -82,11 +82,23 @@
             def __float__(self):
                 return 42
 
+        # Issue 5759: __float__ not called on str subclasses (though it is on
+        # unicode subclasses).
+        class FooStr(str):
+            def __float__(self):
+                return float(str(self)) + 1
+
+        class FooUnicode(unicode):
+            def __float__(self):
+                return float(unicode(self)) + 1
+
         self.assertAlmostEqual(float(Foo0()), 42.)
         self.assertAlmostEqual(float(Foo1()), 42.)
         self.assertAlmostEqual(float(Foo2()), 42.)
         self.assertAlmostEqual(float(Foo3(21)), 42.)
         self.assertRaises(TypeError, float, Foo4(42))
+        self.assertAlmostEqual(float(FooUnicode('8')), 9.)
+        self.assertAlmostEqual(float(FooStr('8')), 9.)
 
     def test_floatasratio(self):
         for f, ratio in [
diff --git a/Misc/NEWS b/Misc/NEWS
index fbf9ad3..8cac11a 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -4,10 +4,15 @@
 
 (editors: check NEWS.help for information about editing NEWS using ReST.)
 
-What's New in Python 2.6.2
+What's New in Python 2.6.3
 ==========================
 
-*Release date: 14-Apr-2009*
+*Release date: XX-XX-XXX*
+
+Core and Builtins
+-----------------
+
+- Issue #5759: float() didn't call __float__ on str subclasses.
 
 
 What's New in Python 2.6.2 rc 1
diff --git a/Objects/floatobject.c b/Objects/floatobject.c
index 881671c..4f041f4 100644
--- a/Objects/floatobject.c
+++ b/Objects/floatobject.c
@@ -1630,7 +1630,9 @@
 		return float_subtype_new(type, args, kwds); /* Wimp out */
 	if (!PyArg_ParseTupleAndKeywords(args, kwds, "|O:float", kwlist, &x))
 		return NULL;
-	if (PyString_Check(x))
+	/* If it's a string, but not a string subclass, use
+	   PyFloat_FromString. */
+	if (PyString_CheckExact(x))
 		return PyFloat_FromString(x, NULL);
 	return PyNumber_Float(x);
 }
