diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
index f3a5dd9..af4ce63 100644
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -10196,6 +10196,7 @@
     void *src_data, *dest_data;
     int tabsize = 8;
     int kind;
+    int found;
 
     if (!PyArg_ParseTuple(args, "|i:expandtabs", &tabsize))
         return NULL;
@@ -10205,9 +10206,11 @@
     i = j = line_pos = 0;
     kind = PyUnicode_KIND(self);
     src_data = PyUnicode_DATA(self);
+    found = 0;
     for (; i < src_len; i++) {
         ch = PyUnicode_READ(kind, src_data, i);
         if (ch == '\t') {
+            found = 1;
             if (tabsize > 0) {
                 incr = tabsize - (line_pos % tabsize); /* cannot overflow */
                 if (j > PY_SSIZE_T_MAX - incr)
@@ -10225,6 +10228,10 @@
                 line_pos = 0;
         }
     }
+    if (!found && PyUnicode_CheckExact(self)) {
+        Py_INCREF((PyObject *) self);
+        return (PyObject *) self;
+    }
 
     /* Second pass: create output string and fill it */
     u = PyUnicode_New(j, PyUnicode_MAX_CHAR_VALUE(self));
