diff --git a/Objects/complexobject.c b/Objects/complexobject.c
index 191dcba..32f2b24 100644
--- a/Objects/complexobject.c
+++ b/Objects/complexobject.c
@@ -553,12 +553,6 @@
 	Py_complex i, j;
 	PyObject *res;
 
-	if (op != Py_EQ && op != Py_NE) {
-		PyErr_SetString(PyExc_TypeError,
-			"cannot compare complex numbers using <, <=, >, >=");
-		return NULL;
-	}
-
 	c = PyNumber_CoerceEx(&v, &w);
 	if (c < 0)
 		return NULL;
@@ -566,7 +560,10 @@
 		Py_INCREF(Py_NotImplemented);
 		return Py_NotImplemented;
 	}
-	if (!PyComplex_Check(v) || !PyComplex_Check(w)) {
+	/* May sure both arguments use complex comparison.
+	   This implies PyComplex_Check(a) && PyComplex_Check(b). */
+	if (v->ob_type->tp_richcompare != complex_richcompare ||
+	    w->ob_type->tp_richcompare != complex_richcompare) {
 		Py_DECREF(v);
 		Py_DECREF(w);
 		Py_INCREF(Py_NotImplemented);
@@ -578,6 +575,12 @@
 	Py_DECREF(v);
 	Py_DECREF(w);
 
+	if (op != Py_EQ && op != Py_NE) {
+		PyErr_SetString(PyExc_TypeError,
+			"cannot compare complex numbers using <, <=, >, >=");
+		return NULL;
+	}
+
 	if ((i.real == j.real && i.imag == j.imag) == (op == Py_EQ))
 		res = Py_True;
 	else
