diff --git a/Misc/NEWS b/Misc/NEWS
index 8a6e902..f1b3a8b 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -10,7 +10,7 @@
 *Release date: XX-XXX-2003*
 
 Core and builtins
------------------
+----------------
 
 - Through a bytecode optimizer bug (and I bet you didn't even know
   Python *had* a bytecode optimizer :-), "unsigned" hex/oct constants
@@ -24,6 +24,13 @@
   value, but according to PEP 237 it really needs to be 1 now.  This
   will be backported to Python 2.2.3 a well.  (SF #660455)
 
+- int(s, base) sometimes sign-folds hex and oct constants; it only
+  does this when base is 0 and s.strip() starts with a '0'.  When the
+  sign is actually folded, as in int("0xffffffff", 0) on a 32-bit
+  machine, which returns -1, a FutureWarning is now issued; in Python
+  2.4, this will return 4294967295L, as do int("+0xffffffff", 0) and
+  int("0xffffffff", 16) right now.  (PEP 347)
+
 - super(X, x): x may now be a proxy for an X instance, i.e.
   issubclass(x.__class__, X) but not issubclass(type(x), X).
 
diff --git a/Objects/intobject.c b/Objects/intobject.c
index 544e663..fee7e4e 100644
--- a/Objects/intobject.c
+++ b/Objects/intobject.c
@@ -187,17 +187,22 @@
 	char *end;
 	long x;
 	char buffer[256]; /* For errors */
+	int warn = 0;
 
 	if ((base != 0 && base < 2) || base > 36) {
-		PyErr_SetString(PyExc_ValueError, "int() base must be >= 2 and <= 36");
+		PyErr_SetString(PyExc_ValueError,
+				"int() base must be >= 2 and <= 36");
 		return NULL;
 	}
 
 	while (*s && isspace(Py_CHARMASK(*s)))
 		s++;
 	errno = 0;
-	if (base == 0 && s[0] == '0')
+	if (base == 0 && s[0] == '0') {
 		x = (long) PyOS_strtoul(s, &end, base);
+		if (x < 0)
+			warn = 1;
+	}
 	else
 		x = PyOS_strtol(s, &end, base);
 	if (end == s || !isalnum(Py_CHARMASK(end[-1])))
@@ -216,6 +221,11 @@
 			return NULL;
 		return PyLong_FromString(s, pend, base);
 	}
+	if (warn) {
+		if (PyErr_Warn(PyExc_FutureWarning,
+			"int('0...', 0): sign will change in Python 2.4") < 0)
+			return NULL;
+	}
 	if (pend)
 		*pend = end;
 	return PyInt_FromLong(x);
