diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
index 75fc23c..3cc190e 100644
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -1622,6 +1622,8 @@
         assert(*p < 128);
     }
 #endif
+    if (size == 1)
+        return get_latin1_char(s[0]);
     res = PyUnicode_New(size, 127);
     if (!res)
         return NULL;
@@ -1653,6 +1655,8 @@
     Py_ssize_t i;
 
     assert(size >= 0);
+    if (size == 1)
+        return get_latin1_char(u[0]);
     for (i = 0; i < size; i++) {
         if (u[i] & 0x80) {
             max_char = 255;
@@ -1675,6 +1679,8 @@
     Py_ssize_t i;
 
     assert(size >= 0);
+    if (size == 1 && u[0] < 256)
+        return get_latin1_char(u[0]);
     for (i = 0; i < size; i++) {
         if (u[i] > max_char) {
             max_char = u[i];
@@ -1702,6 +1708,8 @@
     Py_ssize_t i;
 
     assert(size >= 0);
+    if (size == 1 && u[0] < 256)
+        return get_latin1_char(u[0]);
     for (i = 0; i < size; i++) {
         if (u[i] > max_char) {
             max_char = u[i];
