Fox for SF bug #123859: %[duxXo] long formats inconsistent.
diff --git a/Objects/stringobject.c b/Objects/stringobject.c
index 31d1b05..47da4ed 100644
--- a/Objects/stringobject.c
+++ b/Objects/stringobject.c
@@ -2897,10 +2897,7 @@
 			case 'X':
 				if (c == 'i')
 					c = 'd';
-				if (PyLong_Check(v) && PyLong_AsLong(v) == -1
-				    && PyErr_Occurred()) {
-					/* Too big for a C long. */
-					PyErr_Clear();
+				if (PyLong_Check(v)) {
 					temp = _PyString_FormatLong(v, flags,
 						prec, c, &pbuf, &len);
 					if (!temp)