diff --git a/Modules/arraymodule.c b/Modules/arraymodule.c
index a2b454a..89ed27a 100644
--- a/Modules/arraymodule.c
+++ b/Modules/arraymodule.c
@@ -1258,7 +1258,7 @@
 array_fromfile_as_read(arrayobject *self, PyObject *args)
 {
 	if (PyErr_WarnPy3k("array.read() not supported in 3.x; "
-		       "use array.fromfile()", 1) < 0)
+			   "use array.fromfile()", 1) < 0)
 		return NULL;
 	return array_fromfile(self, args);
 }
@@ -1297,7 +1297,7 @@
 array_tofile_as_write(arrayobject *self, PyObject *f)
 {
 	if (PyErr_WarnPy3k("array.write() not supported in 3.x; "
-		       "use array.tofile()", 1) < 0)
+			   "use array.tofile()", 1) < 0)
 		return NULL;
 	return array_tofile(self, f);
 }
diff --git a/Objects/cellobject.c b/Objects/cellobject.c
index e2a8d29..4e0bcf8 100644
--- a/Objects/cellobject.c
+++ b/Objects/cellobject.c
@@ -56,7 +56,7 @@
 {
 	/* Py3K warning for comparisons  */
 	if (PyErr_WarnPy3k("cell comparisons not supported in 3.x",
-                           1) < 0) {
+			   1) < 0) {
 		return -2;
 	}
 
diff --git a/Objects/codeobject.c b/Objects/codeobject.c
index 815135d..e94b4cc 100644
--- a/Objects/codeobject.c
+++ b/Objects/codeobject.c
@@ -339,9 +339,9 @@
 	    !PyCode_Check(other)) {
 
 		/* Py3K warning if types are not equal and comparison
-                   isn't == or !=  */
+		isn't == or !=  */
 		if (PyErr_WarnPy3k("code inequality comparisons not supported "
-			       "in 3.x", 1) < 0) {
+				   "in 3.x", 1) < 0) {
 			return NULL;
 		}
 
diff --git a/Objects/dictobject.c b/Objects/dictobject.c
index 2291524..102ea98 100644
--- a/Objects/dictobject.c
+++ b/Objects/dictobject.c
@@ -1779,7 +1779,7 @@
 	else {
 		/* Py3K warning if comparison isn't == or !=  */
 		if (PyErr_WarnPy3k("dict inequality comparisons not supported "
-			       "in 3.x", 1) < 0) {
+				   "in 3.x", 1) < 0) {
 			return NULL;
 		}
 		res = Py_NotImplemented;
@@ -1810,7 +1810,7 @@
 dict_has_key(register PyDictObject *mp, PyObject *key)
 {
 	if (PyErr_WarnPy3k("dict.has_key() not supported in 3.x; "
-		       "use the in operator", 1) < 0)
+			   "use the in operator", 1) < 0)
 		return NULL;
 	return dict_contains(mp, key);
 }
diff --git a/Objects/exceptions.c b/Objects/exceptions.c
index 4a9eba1..48b47b0 100644
--- a/Objects/exceptions.c
+++ b/Objects/exceptions.c
@@ -279,9 +279,8 @@
 	int ret;
 	ret = PyErr_WarnEx(PyExc_DeprecationWarning,
 				"BaseException.message has been deprecated as "
-					"of Python 2.6",
-				1);
-	if (ret == -1)
+				"of Python 2.6", 1);
+	if (ret < 0)
 		return NULL;
 
 	Py_INCREF(self->message);
@@ -294,9 +293,8 @@
 	int ret;
 	ret = PyErr_WarnEx(PyExc_DeprecationWarning,
 				"BaseException.message has been deprecated as "
-					"of Python 2.6",
-				1);
-	if (ret == -1)
+				"of Python 2.6", 1);
+	if (ret < 0)
 		return -1;
 	Py_INCREF(val);
 	Py_DECREF(self->message);
diff --git a/Objects/fileobject.c b/Objects/fileobject.c
index ef03232..40ea944 100644
--- a/Objects/fileobject.c
+++ b/Objects/fileobject.c
@@ -627,8 +627,9 @@
 			return NULL;
 		/* Deprecated in 2.6 */
 		PyErr_Clear();
-		if (PyErr_Warn(PyExc_DeprecationWarning,
-			       "integer argument expected, got float"))
+		if (PyErr_WarnEx(PyExc_DeprecationWarning,
+				 "integer argument expected, got float",
+				 1) < 0)
 			return NULL;
 		off_index = offobj;
 		Py_INCREF(offobj);
diff --git a/Objects/listobject.c b/Objects/listobject.c
index e4e8ae4..ee2fda1 100644
--- a/Objects/listobject.c
+++ b/Objects/listobject.c
@@ -2038,7 +2038,7 @@
 	if (compare == Py_None)
 		compare = NULL;
 	if (compare != NULL && 
-            PyErr_WarnPy3k("the cmp argument is not supported in 3.x", 1) < 0)
+	    PyErr_WarnPy3k("the cmp argument is not supported in 3.x", 1) < 0)
 		return NULL;
 	if (keyfunc == Py_None)
 		keyfunc = NULL;
diff --git a/Objects/methodobject.c b/Objects/methodobject.c
index 240cc05..737a3f7 100644
--- a/Objects/methodobject.c
+++ b/Objects/methodobject.c
@@ -236,7 +236,7 @@
 	{
 		/* Py3K warning if types are not equal and comparison isn't == or !=  */
 		if (PyErr_WarnPy3k("builtin_function_or_method inequality "
-			       "comparisons not supported in 3.x", 1) < 0) {
+				   "comparisons not supported in 3.x", 1) < 0) {
 			return NULL;
 		}
 
@@ -352,9 +352,8 @@
 {
 	if (name[0] == '_' && name[1] == '_') {
 		if (strcmp(name, "__methods__") == 0) {
-			if (Py_Py3kWarningFlag &&
-			    PyErr_Warn(PyExc_DeprecationWarning,
-				       "__methods__ not supported in 3.x") < 0)
+			if (PyErr_WarnPy3k("__methods__ not supported in 3.x",
+					   1) < 0)
 				return NULL;
 			return listmethodchain(chain);
 		}
diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c
index 5d191a6..9f9b75a 100644
--- a/Python/bltinmodule.c
+++ b/Python/bltinmodule.c
@@ -166,7 +166,7 @@
 	PyObject *t = NULL, *retval = NULL;
 
 	if (PyErr_WarnPy3k("apply() not supported in 3.x; "
-		       "use func(*args, **kwargs)", 1) < 0)
+			   "use func(*args, **kwargs)", 1) < 0)
 		return NULL;
 
 	if (!PyArg_UnpackTuple(args, "apply", 1, 3, &func, &alist, &kwdict))
@@ -224,7 +224,7 @@
 builtin_callable(PyObject *self, PyObject *v)
 {
 	if (PyErr_WarnPy3k("callable() not supported in 3.x; "
-		       "use hasattr(o, '__call__')", 1) < 0)
+			   "use hasattr(o, '__call__')", 1) < 0)
 		return NULL;
 	return PyBool_FromLong((long)PyCallable_Check(v));
 }
@@ -704,7 +704,7 @@
 	int exists;
 
 	if (PyErr_WarnPy3k("execfile() not supported in 3.x; use exec()",
-                           1) < 0)
+			   1) < 0)
 		return NULL;
 
 	if (!PyArg_ParseTuple(args, "s|O!O:execfile",
@@ -931,7 +931,7 @@
 
 	if (func == Py_None) {
 		if (PyErr_WarnPy3k("map(None, ...) not supported in 3.x; "
-			       "use list(...)", 1) < 0)
+				   "use list(...)", 1) < 0)
 			return NULL;
 		if (n == 1) {
 			/* map(None, S) is the same as list(S). */
@@ -1959,7 +1959,7 @@
 	PyObject *seq, *func, *result = NULL, *it;
 
 	if (PyErr_WarnPy3k("reduce() not supported in 3.x; "
-		       "use functools.reduce()", 1) < 0)
+			   "use functools.reduce()", 1) < 0)
 		return NULL;
 
 	if (!PyArg_UnpackTuple(args, "reduce", 2, 3, &func, &seq, &result))
@@ -2035,7 +2035,7 @@
 builtin_reload(PyObject *self, PyObject *v)
 {
 	if (PyErr_WarnPy3k("In 3.x, reload() is renamed to imp.reload()",
-                           1) < 0)
+			   1) < 0)
 		return NULL;
 
 	return PyImport_ReloadModule(v);
diff --git a/Python/ceval.c b/Python/ceval.c
index c085851..0cff157 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -3157,16 +3157,16 @@
 		/* Not something you can raise.  You get an exception
 		   anyway, just not what you specified :-) */
 		PyErr_Format(PyExc_TypeError,
-			     "exceptions must be classes or instances, not %s",
-			     type->ob_type->tp_name);
+			"exceptions must be classes or instances, not %s",
+			type->ob_type->tp_name);
 		goto raise_error;
 	}
 
 	assert(PyExceptionClass_Check(type));
 	if (Py_Py3kWarningFlag && PyClass_Check(type)) {
 		if (PyErr_WarnEx(PyExc_DeprecationWarning,
-			       "exceptions must derive from BaseException "
-			       "in 3.x", 1) == -1)
+				"exceptions must derive from BaseException "
+				"in 3.x", 1) < 0)
 			goto raise_error;
 	}
 
@@ -4092,7 +4092,7 @@
 						PyExc_DeprecationWarning,
 						"catching of string "
 						"exceptions is deprecated", 1);
-					if (ret_val == -1)
+					if (ret_val < 0)
 						return NULL;
 				}
 				else if (Py_Py3kWarningFlag  &&
@@ -4103,7 +4103,7 @@
 					ret_val = PyErr_WarnEx(
 						PyExc_DeprecationWarning,
 						CANNOT_CATCH_MSG, 1);
-					if (ret_val == -1)
+					if (ret_val < 0)
 						return NULL;
 				}
 			}
@@ -4115,7 +4115,7 @@
 						PyExc_DeprecationWarning,
 						"catching of string "
 						"exceptions is deprecated", 1);
-				if (ret_val == -1)
+				if (ret_val < 0)
 					return NULL;
 			}
 			else if (Py_Py3kWarningFlag  &&
@@ -4126,7 +4126,7 @@
 				ret_val = PyErr_WarnEx(
 					PyExc_DeprecationWarning,
 					CANNOT_CATCH_MSG, 1);
-				if (ret_val == -1)
+				if (ret_val < 0)
 					return NULL;
 			}
 		}
diff --git a/Python/sysmodule.c b/Python/sysmodule.c
index 83d7d68..a9ab6a7 100644
--- a/Python/sysmodule.c
+++ b/Python/sysmodule.c
@@ -173,7 +173,7 @@
 	PyObject *tmp_type, *tmp_value, *tmp_tb;
 
 	if (PyErr_WarnPy3k("sys.exc_clear() not supported in 3.x; "
-		       "use except clauses", 1) < 0)
+			   "use except clauses", 1) < 0)
 		return NULL;
 
 	tstate = PyThreadState_GET();
