revert unintended changes
diff --git a/Include/opcode.h b/Include/opcode.h
index facadc2..7ffa359 100644
--- a/Include/opcode.h
+++ b/Include/opcode.h
@@ -123,7 +123,6 @@
 #define LOAD_CLOSURE    135     /* Load free variable from closure */
 #define LOAD_DEREF      136     /* Load and dereference from closure cell */ 
 #define STORE_DEREF     137     /* Store into cell */ 
-#define LOAD_NAME_LOCAL_ONLY 138
 
 /* The next 3 opcodes must be contiguous and satisfy
    (CALL_FUNCTION_VAR - CALL_FUNCTION) & 3 == 1  */
diff --git a/Include/symtable.h b/Include/symtable.h
index 22075f0..d5ef96f 100644
--- a/Include/symtable.h
+++ b/Include/symtable.h
@@ -88,7 +88,6 @@
 #define GLOBAL_IMPLICIT 3
 #define FREE 4
 #define CELL 5
-#define LOCAL_ONLY 6
 
 /* The following two names are used for the ste_unoptimized bit field */
 #define OPT_IMPORT_STAR 1
diff --git a/Lib/test/test_scope.py b/Lib/test/test_scope.py
index 1961e6e..643dcbc 100644
--- a/Lib/test/test_scope.py
+++ b/Lib/test/test_scope.py
@@ -690,14 +690,6 @@
         h = g()
         self.assertEqual(h(), 3)
 
-    def testLocalClosureShadowing(self):
-        exec("""
-x = 4
-def f(x):
-    class C:
-         x = x
-raises(NameError, f, 3)""", {"raises" : self.assertRaises})
-
 
 def test_main():
     run_unittest(ScopeTests)
diff --git a/Objects/typeobject.c b/Objects/typeobject.c
index 505ca68..268a924 100644
--- a/Objects/typeobject.c
+++ b/Objects/typeobject.c
@@ -6094,7 +6094,6 @@
     PyErr_SetString(PyExc_TypeError,
                     "super(type, obj): "
                     "obj must be an instance or subtype of type");
-    printf("%s\n", type->tp_name);
     return NULL;
 }
 
diff --git a/Python/ceval.c b/Python/ceval.c
index 368ad69..2d4b16a 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -2052,7 +2052,6 @@
             break;
 
         TARGET(LOAD_NAME)
-        TARGET(LOAD_NAME_LOCAL_ONLY)
             w = GETITEM(names, oparg);
             if ((v = f->f_locals) == NULL) {
                 PyErr_Format(PyExc_SystemError,
@@ -2074,14 +2073,15 @@
                 }
             }
             if (x == NULL) {
-                if (opcode != LOAD_NAME_LOCAL_ONLY) {
-                    x = PyDict_GetItem(f->f_globals, w);
-                    if (x == NULL)
-                        x = PyDict_GetItem(f->f_builtins, w);
-                }
+                x = PyDict_GetItem(f->f_globals, w);
                 if (x == NULL) {
-                    format_exc_check_arg(PyExc_NameError, NAME_ERROR_MSG, w);
-                    break;
+                    x = PyDict_GetItem(f->f_builtins, w);
+                    if (x == NULL) {
+                        format_exc_check_arg(
+                                    PyExc_NameError,
+                                    NAME_ERROR_MSG, w);
+                        break;
+                    }
                 }
                 Py_INCREF(x);
             }
diff --git a/Python/compile.c b/Python/compile.c
index 83c9e02..aae0339 100644
--- a/Python/compile.c
+++ b/Python/compile.c
@@ -787,7 +787,6 @@
         case LOAD_CONST:
             return 1;
         case LOAD_NAME:
-        case LOAD_NAME_LOCAL_ONLY:
             return 1;
         case BUILD_TUPLE:
         case BUILD_LIST:
@@ -2482,7 +2481,6 @@
         optype = OP_DEREF;
         break;
     case LOCAL:
-    case LOCAL_ONLY:
         if (c->u->u_ste->ste_type == FunctionBlock)
             optype = OP_FAST;
         break;
@@ -2558,7 +2556,7 @@
         break;
     case OP_NAME:
         switch (ctx) {
-        case Load: op = (scope == LOCAL_ONLY) ? LOAD_NAME_LOCAL_ONLY : LOAD_NAME; break;
+        case Load: op = LOAD_NAME; break;
         case Store: op = STORE_NAME; break;
         case Del: op = DELETE_NAME; break;
         case AugLoad:
diff --git a/Python/symtable.c b/Python/symtable.c
index 37bdf2a..55c9f47 100644
--- a/Python/symtable.c
+++ b/Python/symtable.c
@@ -432,14 +432,7 @@
         return PySet_Add(free, name) >= 0;
     }
     if (flags & DEF_BOUND) {
-        if (ste->ste_type == ClassBlock &&
-            !(flags & DEF_PARAM) &&
-            bound && PySet_Contains(bound, name)) {
-            SET_SCOPE(scopes, name, LOCAL_ONLY);
-        }
-        else {
-            SET_SCOPE(scopes, name, LOCAL);
-        }
+        SET_SCOPE(scopes, name, LOCAL);
         if (PySet_Add(local, name) < 0)
             return 0;
         if (PySet_Discard(global, name) < 0)
@@ -496,7 +489,7 @@
         long scope;
         assert(PyLong_Check(v));
         scope = PyLong_AS_LONG(v);
-        if (scope != LOCAL && scope != LOCAL_ONLY)
+        if (scope != LOCAL)
             continue;
         if (!PySet_Contains(free, name))
             continue;