Change string comparison so that it applies even when one (or both)
arguments are subclasses of str, as long as they don't override rich
comparison.
diff --git a/Objects/stringobject.c b/Objects/stringobject.c
index 99a16ed..e29be5a 100644
--- a/Objects/stringobject.c
+++ b/Objects/stringobject.c
@@ -824,9 +824,10 @@
 	int min_len;
 	PyObject *result;
 
-	/* One of the objects is a string object. Make sure the
-	   other one is one, too.  */
-	if (a->ob_type != b->ob_type) {
+	/* May sure both arguments use string comparison.
+	   This implies PyString_Check(a) && PyString_Check(b). */
+	if (a->ob_type->tp_richcompare != (richcmpfunc)string_richcompare ||
+	    b->ob_type->tp_richcompare != (richcmpfunc)string_richcompare) {
 		result = Py_NotImplemented;
 		goto out;
 	}