Issue #1583863: An unicode subclass can now override the __str__ method
diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
index 113a460..82af3a2 100644
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -8466,7 +8466,7 @@
 
             case 's':
             case 'r':
-                if (PyUnicode_Check(v) && c == 's') {
+                if (PyUnicode_CheckExact(v) && c == 's') {
                     temp = v;
                     Py_INCREF(temp);
                 }