diff --git a/Objects/listobject.c b/Objects/listobject.c
index 16d63b8..588053c 100644
--- a/Objects/listobject.c
+++ b/Objects/listobject.c
@@ -580,8 +580,12 @@
 	PyObject *args, *res;
 	int i;
 
-	if (compare == NULL)
-		return PyObject_Compare(x, y);
+	if (compare == NULL) {
+		i = PyObject_Compare(x, y);
+		if (i && PyErr_Occurred())
+			i = CMPERROR;
+		return i;
+	}
 
 	args = Py_BuildValue("(OO)", x, y);
 	if (args == NULL)
@@ -955,6 +959,8 @@
 	for (i = 0; i < self->ob_size; i++) {
 		if (PyObject_Compare(self->ob_item[i], args) == 0)
 			return PyInt_FromLong((long)i);
+		if (PyErr_Occurred())
+			return NULL;
 	}
 	PyErr_SetString(PyExc_ValueError, "list.index(x): x not in list");
 	return NULL;
@@ -975,6 +981,8 @@
 	for (i = 0; i < self->ob_size; i++) {
 		if (PyObject_Compare(self->ob_item[i], args) == 0)
 			count++;
+		if (PyErr_Occurred())
+			return NULL;
 	}
 	return PyInt_FromLong((long)count);
 }
@@ -998,7 +1006,8 @@
 			Py_INCREF(Py_None);
 			return Py_None;
 		}
-			
+		if (PyErr_Occurred())
+			return NULL;
 	}
 	PyErr_SetString(PyExc_ValueError, "list.remove(x): x not in list");
 	return NULL;
