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;
diff --git a/Python/symtable.c b/Python/symtable.c
index 17876ea..732b85c 100644
--- a/Python/symtable.c
+++ b/Python/symtable.c
@@ -186,7 +186,8 @@
 
 
 static identifier top = NULL, lambda = NULL, genexpr = NULL,
-    listcomp = NULL, setcomp = NULL, dictcomp = NULL, __class__ = NULL;
+	listcomp = NULL, setcomp = NULL, dictcomp = NULL,
+	__class__ = NULL, __locals__ = NULL;
 
 #define GET_IDENTIFIER(VAR) \
 	((VAR) ? (VAR) : ((VAR) = PyUnicode_InternFromString(# VAR)))
@@ -1050,7 +1051,9 @@
 					  (void *)s, s->lineno))
 			return 0;
 		if (!GET_IDENTIFIER(__class__) ||
-		    !symtable_add_def(st, __class__, DEF_LOCAL)) {
+		    !symtable_add_def(st, __class__, DEF_LOCAL) ||
+		    !GET_IDENTIFIER(__locals__) ||
+		    !symtable_add_def(st, __locals__, DEF_PARAM)) {
 			symtable_exit_block(st, s);
 			return 0;
 		}
