Index: django/db/backends/mysql/base.py
===================================================================
--- django/db/backends/mysql/base.py	(revision 16026)
+++ django/db/backends/mysql/base.py	(working copy)
@@ -43,6 +43,22 @@
 DatabaseError = Database.DatabaseError
 IntegrityError = Database.IntegrityError
 
+def Float2Str(value, conv):
+    if value == float('inf'):
+        return '2147483647'
+    elif value == float('-inf'):
+        return '-2147483648'
+    else:
+        return conversions[float](value, conv)
+
+def mysql_float_converter(value):
+    if value == '2147483647':
+        return float('inf')
+    elif value == '-2147483648':
+        return float('-inf')
+    else:
+        return float(value)
+
 # MySQLdb-1.2.1 returns TIME columns as timedelta -- they are more like
 # timedelta in terms of actual behavior as they are signed and include days --
 # and Django expects time, so we still need to override that. We also need to
@@ -53,6 +69,8 @@
     FIELD_TYPE.TIME: util.typecast_time,
     FIELD_TYPE.DECIMAL: util.typecast_decimal,
     FIELD_TYPE.NEWDECIMAL: util.typecast_decimal,
+    float: Float2Str,
+    FIELD_TYPE.DOUBLE: mysql_float_converter,
 })
 
 # This should match the numerical portion of the version numbers (we can treat
