diff --git a/Objects/intobject.c b/Objects/intobject.c
index a8ea6ac..2cda031 100644
--- a/Objects/intobject.c
+++ b/Objects/intobject.c
@@ -671,7 +671,7 @@
 	if (a == 0 || b == 0)
 		return int_pos(v);
 	if (b >= LONG_BIT) {
-		if (PyErr_Warn(PyExc_DeprecationWarning,
+		if (PyErr_Warn(PyExc_FutureWarning,
 			       "x<<y losing bits or changing sign "
 			       "will return a long in Python 2.4 and up") < 0)
 			return NULL;
@@ -679,7 +679,7 @@
 	}
 	c = a << b;
 	if (a != Py_ARITHMETIC_RIGHT_SHIFT(long, c, b)) {
-		if (PyErr_Warn(PyExc_DeprecationWarning,
+		if (PyErr_Warn(PyExc_FutureWarning,
 			       "x<<y losing bits or changing sign "
 			       "will return a long in Python 2.4 and up") < 0)
 			return NULL;
@@ -774,7 +774,7 @@
 	char buf[100];
 	long x = v -> ob_ival;
 	if (x < 0) {
-		if (PyErr_Warn(PyExc_DeprecationWarning,
+		if (PyErr_Warn(PyExc_FutureWarning,
 			       "hex()/oct() of negative int will return "
 			       "a signed string in Python 2.4 and up") < 0)
 			return NULL;
@@ -792,7 +792,7 @@
 	char buf[100];
 	long x = v -> ob_ival;
 	if (x < 0) {
-		if (PyErr_Warn(PyExc_DeprecationWarning,
+		if (PyErr_Warn(PyExc_FutureWarning,
 			       "hex()/oct() of negative int will return "
 			       "a signed string in Python 2.4 and up") < 0)
 			return NULL;
diff --git a/Objects/stringobject.c b/Objects/stringobject.c
index a21e021..bf1c58e 100644
--- a/Objects/stringobject.c
+++ b/Objects/stringobject.c
@@ -3469,7 +3469,7 @@
 		return -1;
 	}
 	if (x < 0 && type != 'd' && type != 'i') {
-		if (PyErr_Warn(PyExc_DeprecationWarning,
+		if (PyErr_Warn(PyExc_FutureWarning,
 			       "%u/%o/%x/%X of negative int will return "
 			       "a signed string in Python 2.4 and up") < 0)
 			return -1;
diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
index d0fe24c..4ac12a0 100644
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -5338,7 +5338,7 @@
     if (x == -1 && PyErr_Occurred())
         return -1;
     if (x < 0 && type != 'd' && type != 'i') {
-	if (PyErr_Warn(PyExc_DeprecationWarning,
+	if (PyErr_Warn(PyExc_FutureWarning,
 		       "%u/%o/%x/%X of negative int will return "
 		       "a signed string in Python 2.4 and up") < 0)
 	    return -1;
