Issue #2801: fix bug in float.is_integer where ValueError
could be incorrectly raised.  This is a backport of the
Py3k fix in r62939.  (Should really have been fixed
in the trunk first and svnmerged into py3k.)
diff --git a/Misc/NEWS b/Misc/NEWS
index 58fd955..12522db 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -12,6 +12,9 @@
 Core and Builtins
 -----------------
 
+- Issue #2801: fix bug in the float.is_integer method where a ValueError
+  was sometimes incorrectly raised.
+
 - Issue #2790: sys.flags was not properly exposing its bytes_warning attribute.
 
 Extension Modules
diff --git a/Objects/floatobject.c b/Objects/floatobject.c
index f79995c..ceb0b6d 100644
--- a/Objects/floatobject.c
+++ b/Objects/floatobject.c
@@ -1031,6 +1031,7 @@
 		return NULL;
 	if (!Py_IS_FINITE(x))
 		Py_RETURN_FALSE;
+	errno = 0;
 	PyFPE_START_PROTECT("is_integer", return NULL)
 	o = (floor(x) == x) ? Py_True : Py_False;
 	PyFPE_END_PROTECT(x)