diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
index 57baebd..e7bbd80 100644
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -5418,7 +5418,6 @@
         if (!result)
             return NULL;
         for (i = 0; i < 256; i++) {
-            key = value = NULL;
             key = PyLong_FromLong(decode[i]);
             value = PyLong_FromLong(i);
             if (!key || !value)
@@ -6935,7 +6934,7 @@
         }
     } else {
 
-        Py_ssize_t n, i, j, e;
+        Py_ssize_t n, i, j;
         Py_ssize_t product, new_size, delta;
         Py_UNICODE *p;
 
@@ -6967,7 +6966,6 @@
             return NULL;
         i = 0;
         p = u->str;
-        e = self->length - str1->length;
         if (str1->length > 0) {
             while (n-- > 0) {
                 /* look for next match */
