#12266: Fix str.capitalize() to correctly uppercase/lowercase titlecased and cased non-letter characters.
diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
index a48b8b4..77f8dd5 100644
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -6658,13 +6658,13 @@
 
     if (len == 0)
         return 0;
-    if (Py_UNICODE_ISLOWER(*s)) {
+    if (!Py_UNICODE_ISUPPER(*s)) {
         *s = Py_UNICODE_TOUPPER(*s);
         status = 1;
     }
     s++;
     while (--len > 0) {
-        if (Py_UNICODE_ISUPPER(*s)) {
+        if (!Py_UNICODE_ISLOWER(*s)) {
             *s = Py_UNICODE_TOLOWER(*s);
             status = 1;
         }