diff --git a/Python/compile.c b/Python/compile.c
index 8fae9d7..95ebd76 100644
--- a/Python/compile.c
+++ b/Python/compile.c
@@ -1524,23 +1524,14 @@
 static int
 compiler_class(struct compiler *c, stmt_ty s)
 {
-	static PyObject *locals = NULL;
 	PyCodeObject *co;
 	PyObject *str;
-	PySTEntryObject *ste;
-	int err, i;
+	int i;
 	asdl_seq* decos = s->v.ClassDef.decorator_list;
 
         if (!compiler_decorators(c, decos))
                 return 0;
 
-	/* initialize statics */
-	if (locals == NULL) {
-		locals = PyUnicode_InternFromString("__locals__");
-		if (locals == NULL)
-			return 0;
-	}
-
 	/* ultimately generate code for:
 	     <name> = __build_class__(<func>, <name>, *<bases>, **<keywords>)
 	   where:
@@ -1553,16 +1544,6 @@
 	   This borrows from compiler_call.
 	*/
 
-	/* 0. Create a fake argument named __locals__ */
-	ste = PySymtable_Lookup(c->c_st, s);
-	if (ste == NULL)
-		return 0;
-	assert(PyList_Check(ste->ste_varnames));
-	err = PyList_Append(ste->ste_varnames, locals);
-	Py_DECREF(ste);
-	if (err < 0)
-		return 0;
-
 	/* 1. compile the class body into a code object */
 	if (!compiler_enter_scope(c, s->v.ClassDef.name, (void *)s, s->lineno))
 		return 0;
