diff --git a/Objects/clinic/unicodeobject.c.h b/Objects/clinic/unicodeobject.c.h
index 5873ce1..610178d 100644
--- a/Objects/clinic/unicodeobject.c.h
+++ b/Objects/clinic/unicodeobject.c.h
@@ -6,9 +6,9 @@
 "title($self, /)\n"
 "--\n"
 "\n"
-"Return a version of the string where each word is capitalized.\n"
+"Return a version of the string where each word is titlecased.\n"
 "\n"
-"More specifically, words start with upper cased characters and all remaining\n"
+"More specifically, words start with uppercased characters and all remaining\n"
 "cased characters have lower case.");
 
 #define UNICODE_TITLE_METHODDEF    \
@@ -48,7 +48,7 @@
 "casefold($self, /)\n"
 "--\n"
 "\n"
-"Return a version of S suitable for caseless comparisons.");
+"Return a version of the string suitable for caseless comparisons.");
 
 #define UNICODE_CASEFOLD_METHODDEF    \
     {"casefold", (PyCFunction)unicode_casefold, METH_NOARGS, unicode_casefold__doc__},
@@ -97,12 +97,12 @@
 "encode($self, /, encoding=\'utf-8\', errors=\'strict\')\n"
 "--\n"
 "\n"
-"Encode a string using the codec registered for encoding.\n"
+"Encode the string using the codec registered for encoding.\n"
 "\n"
 "  encoding\n"
 "    The encoding in which to encode the string.\n"
 "  errors\n"
-"    The error handling scheme to use for the handling of encoding errors.\n"
+"    The error handling scheme to use for encoding errors.\n"
 "    The default is \'strict\' meaning that encoding errors raise a\n"
 "    UnicodeEncodeError.  Other possible values are \'ignore\', \'replace\' and\n"
 "    \'xmlcharrefreplace\' as well as any other name registered with\n"
@@ -169,7 +169,7 @@
 "islower($self, /)\n"
 "--\n"
 "\n"
-"Return whether the string is a lowercase string; False otherwise.\n"
+"Return True if the string is a lowercase string, False otherwise.\n"
 "\n"
 "A string is lowercase if all cased characters in the string are lowercase and\n"
 "there is at least one cased character in the string.");
@@ -190,7 +190,7 @@
 "isupper($self, /)\n"
 "--\n"
 "\n"
-"Return True if the string is an uppercase string; False otherwise.\n"
+"Return True if the string is an uppercase string, False otherwise.\n"
 "\n"
 "A string is uppercase if all cased characters in the string are uppercase and\n"
 "there is at least one cased character in the string.");
@@ -211,7 +211,7 @@
 "istitle($self, /)\n"
 "--\n"
 "\n"
-"Return True if the string is a title-cased string; False otherwise.\n"
+"Return True if the string is a title-cased string, False otherwise.\n"
 "\n"
 "In a title-cased string, upper- and title-case characters may only\n"
 "follow uncased characters and lowercase characters only cased ones.");
@@ -232,7 +232,7 @@
 "isspace($self, /)\n"
 "--\n"
 "\n"
-"Return True if the string is a whitespace string; False otherwise.\n"
+"Return True if the string is a whitespace string, False otherwise.\n"
 "\n"
 "A string is whitespace if all characters in the string are whitespace and there\n"
 "is at least one character in the string.");
@@ -253,7 +253,7 @@
 "isalpha($self, /)\n"
 "--\n"
 "\n"
-"Return True if the string is an alphabetic string; False otherwise.\n"
+"Return True if the string is an alphabetic string, False otherwise.\n"
 "\n"
 "A string is alphabetic if all characters in the string are alphabetic and there\n"
 "is at least one character in the string.");
@@ -274,7 +274,7 @@
 "isalnum($self, /)\n"
 "--\n"
 "\n"
-"Return True if the string is an alpha-numeric string; False otherwise.\n"
+"Return True if the string is an alpha-numeric string, False otherwise.\n"
 "\n"
 "A string is alpha-numeric if all characters in the string are alpha-numeric and\n"
 "there is at least one character in the string.");
@@ -295,9 +295,9 @@
 "isdecimal($self, /)\n"
 "--\n"
 "\n"
-"Return True if the string is a decimal string; False otherwise.\n"
+"Return True if the string is a decimal string, False otherwise.\n"
 "\n"
-"A string is a digit string if all characters in the string are decimal and\n"
+"A string is a decimal string if all characters in the string are decimal and\n"
 "there is at least one character in the string.");
 
 #define UNICODE_ISDECIMAL_METHODDEF    \
@@ -316,7 +316,7 @@
 "isdigit($self, /)\n"
 "--\n"
 "\n"
-"Return True if the string is a digit string; False otherwise.\n"
+"Return True if the string is a digit string, False otherwise.\n"
 "\n"
 "A string is a digit string if all characters in the string are digits and there\n"
 "is at least one character in the string.");
@@ -337,7 +337,7 @@
 "isnumeric($self, /)\n"
 "--\n"
 "\n"
-"Return True if the string is an numeric string; False otherwise.\n"
+"Return True if the string is a numeric string, False otherwise.\n"
 "\n"
 "A string is numeric if all characters in the string are numeric and there is at\n"
 "least one character in the string.");
@@ -358,7 +358,7 @@
 "isidentifier($self, /)\n"
 "--\n"
 "\n"
-"Return True if the string is a valid Python identifier; False otherwise.\n"
+"Return True if the string is a valid Python identifier, False otherwise.\n"
 "\n"
 "Use keyword.iskeyword() to test for reserved identifiers such as \"def\" and\n"
 "\"class\".");
@@ -379,7 +379,7 @@
 "isprintable($self, /)\n"
 "--\n"
 "\n"
-"Return True if the string is printable; False otherwise.\n"
+"Return True if the string is printable, False otherwise.\n"
 "\n"
 "A string is printable if all of its characters are considered printable in\n"
 "repr() or if it is empty.");
@@ -402,9 +402,7 @@
 "\n"
 "Concatenate any number of strings.\n"
 "\n"
-"The string whose method is called is inserted in between each pair of given\n"
-"strings.\n"
-"\n"
+"The string whose method is called is inserted in between each given strings.\n"
 "The result is returned as a new string.\n"
 "\n"
 "Example: \'.\'.join([\'ab\', \'pq\', \'rs\']) -> \'ab.pq.rs\'");
@@ -865,7 +863,7 @@
 "\n"
 "Pad a numeric string with zeros on the left, to fill a field of the given width.\n"
 "\n"
-"The original string is never truncated.");
+"The string is never truncated.");
 
 #define UNICODE_ZFILL_METHODDEF    \
     {"zfill", (PyCFunction)unicode_zfill, METH_O, unicode_zfill__doc__},
@@ -892,7 +890,7 @@
 "__format__($self, format_spec, /)\n"
 "--\n"
 "\n"
-"Return a formatted version of S as described by format_spec.");
+"Return a formatted version of the string as described by format_spec.");
 
 #define UNICODE___FORMAT___METHODDEF    \
     {"__format__", (PyCFunction)unicode___format__, METH_O, unicode___format____doc__},
@@ -932,4 +930,4 @@
 {
     return unicode_sizeof_impl(self);
 }
-/*[clinic end generated code: output=11b54b7b810af538 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=3b9b1e1f71ba3b00 input=a9049054013a1b77]*/
diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
index acf59e4..e2bdf08 100644
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -49,7 +49,7 @@
 #endif
 
 /*[clinic input]
-class str "PyUnicodeObject *" "&PyUnicode_Type"
+class str "PyObject *" "&PyUnicode_Type"
 [clinic start generated code]*/
 /*[clinic end generated code: output=da39a3ee5e6b4b0d input=4884c934de622cf6]*/
 
@@ -10737,7 +10737,7 @@
 
 static PyObject *
 unicode_title_impl(PyObject *self)
-/*[clinic end generated code: output=c75ae03809574902 input=4eb12c1bb8642cb9]*/
+/*[clinic end generated code: output=c75ae03809574902 input=fa945d669b26e683]*/
 {
     if (PyUnicode_READY(self) == -1)
         return NULL;
@@ -10772,7 +10772,7 @@
 
 static PyObject *
 unicode_casefold_impl(PyObject *self)
-/*[clinic end generated code: output=0120daf657ca40af input=a96f2b0d3daabd94]*/
+/*[clinic end generated code: output=0120daf657ca40af input=384d66cc2ae30daf]*/
 {
     if (PyUnicode_READY(self) == -1)
         return NULL;
@@ -11510,7 +11510,7 @@
 
 static PyObject *
 unicode_encode_impl(PyObject *self, const char *encoding, const char *errors)
-/*[clinic end generated code: output=bf78b6e2a9470e3c input=12fcb2e5798e96dc]*/
+/*[clinic end generated code: output=bf78b6e2a9470e3c input=f0a9eb293d08fe02]*/
 {
     return PyUnicode_AsEncodedString(self, encoding, errors);
 }
@@ -11730,7 +11730,7 @@
 
 static PyObject *
 unicode_islower_impl(PyObject *self)
-/*[clinic end generated code: output=dbd41995bd005b81 input=46eeb20d935af050]*/
+/*[clinic end generated code: output=dbd41995bd005b81 input=acec65ac6821ae47]*/
 {
     Py_ssize_t i, length;
     int kind;
@@ -11775,7 +11775,7 @@
 
 static PyObject *
 unicode_isupper_impl(PyObject *self)
-/*[clinic end generated code: output=049209c8e7f15f59 input=dd0a595fc871eee0]*/
+/*[clinic end generated code: output=049209c8e7f15f59 input=e9b1feda5d17f2d3]*/
 {
     Py_ssize_t i, length;
     int kind;
@@ -11820,7 +11820,7 @@
 
 static PyObject *
 unicode_istitle_impl(PyObject *self)
-/*[clinic end generated code: output=e9bf6eb91f5d3f0e input=2c56883d113d644d]*/
+/*[clinic end generated code: output=e9bf6eb91f5d3f0e input=98d32bd2e1f06f8c]*/
 {
     Py_ssize_t i, length;
     int kind;
@@ -11878,7 +11878,7 @@
 
 static PyObject *
 unicode_isspace_impl(PyObject *self)
-/*[clinic end generated code: output=163a63bfa08ac2b9 input=b9506a23e312d203]*/
+/*[clinic end generated code: output=163a63bfa08ac2b9 input=fe462cb74f8437d8]*/
 {
     Py_ssize_t i, length;
     int kind;
@@ -11918,7 +11918,7 @@
 
 static PyObject *
 unicode_isalpha_impl(PyObject *self)
-/*[clinic end generated code: output=cc81b9ac3883ec4f input=17e3788814472079]*/
+/*[clinic end generated code: output=cc81b9ac3883ec4f input=d0fd18a96cbca5eb]*/
 {
     Py_ssize_t i, length;
     int kind;
@@ -11957,7 +11957,7 @@
 
 static PyObject *
 unicode_isalnum_impl(PyObject *self)
-/*[clinic end generated code: output=a5a23490ffc3660c input=d350c4f7c59b4758]*/
+/*[clinic end generated code: output=a5a23490ffc3660c input=5c6579bf2e04758c]*/
 {
     int kind;
     void *data;
@@ -11999,7 +11999,7 @@
 
 static PyObject *
 unicode_isdecimal_impl(PyObject *self)
-/*[clinic end generated code: output=fb2dcdb62d3fc548 input=40536fb80e5f1dc1]*/
+/*[clinic end generated code: output=fb2dcdb62d3fc548 input=336bc97ab4c8268f]*/
 {
     Py_ssize_t i, length;
     int kind;
@@ -12038,7 +12038,7 @@
 
 static PyObject *
 unicode_isdigit_impl(PyObject *self)
-/*[clinic end generated code: output=10a6985311da6858 input=c6a222be1aaec2af]*/
+/*[clinic end generated code: output=10a6985311da6858 input=901116c31deeea4c]*/
 {
     Py_ssize_t i, length;
     int kind;
@@ -12078,7 +12078,7 @@
 
 static PyObject *
 unicode_isnumeric_impl(PyObject *self)
-/*[clinic end generated code: output=9172a32d9013051a input=e3b37b2cc8854f35]*/
+/*[clinic end generated code: output=9172a32d9013051a input=722507db976f826c]*/
 {
     Py_ssize_t i, length;
     int kind;
@@ -12154,7 +12154,7 @@
 
 static PyObject *
 unicode_isidentifier_impl(PyObject *self)
-/*[clinic end generated code: output=fe585a9666572905 input=95eebe40d6d91234]*/
+/*[clinic end generated code: output=fe585a9666572905 input=916b0a3c9f57e919]*/
 {
     return PyBool_FromLong(PyUnicode_IsIdentifier(self));
 }
@@ -12170,7 +12170,7 @@
 
 static PyObject *
 unicode_isprintable_impl(PyObject *self)
-/*[clinic end generated code: output=3ab9626cd32dd1a0 input=20c53134171af84e]*/
+/*[clinic end generated code: output=3ab9626cd32dd1a0 input=98a0e1c2c1813209]*/
 {
     Py_ssize_t i, length;
     int kind;
@@ -12211,7 +12211,7 @@
 
 static PyObject *
 unicode_join(PyObject *self, PyObject *iterable)
-/*[clinic end generated code: output=6857e7cecfe7bf98 input=465f62626109db6b]*/
+/*[clinic end generated code: output=6857e7cecfe7bf98 input=d8311e5ccbafbeb6]*/
 {
     return PyUnicode_Join(self, iterable);
 }
@@ -13309,7 +13309,7 @@
 
 static PyObject *
 unicode_zfill_impl(PyObject *self, Py_ssize_t width)
-/*[clinic end generated code: output=e13fb6bdf8e3b9df input=3559257ab7bfed6e]*/
+/*[clinic end generated code: output=e13fb6bdf8e3b9df input=c6b2f772c6f27799]*/
 {
     Py_ssize_t fill;
     PyObject *u;
@@ -13814,7 +13814,7 @@
 
 static PyObject *
 unicode___format___impl(PyObject *self, PyObject *format_spec)
-/*[clinic end generated code: output=45fceaca6d2ba4c8 input=1f0623ca7b7c5981]*/
+/*[clinic end generated code: output=45fceaca6d2ba4c8 input=5e135645d167a214]*/
 {
     _PyUnicodeWriter writer;
     int ret;
