Issue 2354: Fix-up compare warning.  Patch contributed by Jeff Balogh.
diff --git a/Lib/test/test_py3kwarn.py b/Lib/test/test_py3kwarn.py
index cb450ff..f7a6949 100644
--- a/Lib/test/test_py3kwarn.py
+++ b/Lib/test/test_py3kwarn.py
@@ -91,6 +91,20 @@
     def assertWarning(self, _, warning, expected_message):
         self.assertEqual(str(warning.message), expected_message)
 
+    def test_sort_cmp_arg(self):
+        expected = "In 3.x, the cmp argument is no longer supported."
+        lst = range(5)
+        cmp = lambda x,y: -1
+
+        with catch_warning() as w:
+            self.assertWarning(lst.sort(cmp=cmp), w, expected)
+        with catch_warning() as w:
+            self.assertWarning(sorted(lst, cmp=cmp), w, expected)
+        with catch_warning() as w:
+            self.assertWarning(lst.sort(cmp), w, expected)
+        with catch_warning() as w:
+            self.assertWarning(sorted(lst, cmp), w, expected)
+
 def test_main():
     run_unittest(TestPy3KWarnings)
 
diff --git a/Objects/listobject.c b/Objects/listobject.c
index 9e86592..d4faf0a 100644
--- a/Objects/listobject.c
+++ b/Objects/listobject.c
@@ -2037,7 +2037,7 @@
 	}
 	if (compare == Py_None)
 		compare = NULL;
-	if (compare == NULL && 
+	if (compare != NULL && 
             Py_Py3kWarningFlag &&
 	    PyErr_Warn(PyExc_DeprecationWarning, 
 		       "In 3.x, the cmp argument is no longer supported.") < 0)