diff --git a/Objects/frameobject.c b/Objects/frameobject.c
index 165121d..6adc036 100644
--- a/Objects/frameobject.c
+++ b/Objects/frameobject.c
@@ -416,8 +416,6 @@
 			return;
 		}
 	}
-	if (f->f_nlocals == 0)
-		return;
 	map = f->f_code->co_varnames;
 	if (!PyDict_Check(locals) || !PyTuple_Check(map))
 		return;
@@ -426,7 +424,8 @@
 	j = PyTuple_Size(map);
 	if (j > f->f_nlocals)
 		j = f->f_nlocals;
-	map_to_dict(map, j, locals, fast, 0);
+	if (f->f_nlocals)
+	    map_to_dict(map, j, locals, fast, 0);
 	if (f->f_ncells || f->f_nfreevars) {
 		if (!(PyTuple_Check(f->f_code->co_cellvars)
 		      && PyTuple_Check(f->f_code->co_freevars))) {
@@ -455,7 +454,7 @@
 		return;
 	locals = f->f_locals;
 	map = f->f_code->co_varnames;
-	if (locals == NULL || f->f_code->co_nlocals == 0)
+	if (locals == NULL)
 		return;
 	if (!PyDict_Check(locals) || !PyTuple_Check(map))
 		return;
@@ -464,7 +463,8 @@
 	j = PyTuple_Size(map);
 	if (j > f->f_nlocals)
 		j = f->f_nlocals;
-	dict_to_map(f->f_code->co_varnames, j, locals, fast, 0, clear);
+	if (f->f_nlocals)
+	    dict_to_map(f->f_code->co_varnames, j, locals, fast, 0, clear);
 	if (f->f_ncells || f->f_nfreevars) {
 		if (!(PyTuple_Check(f->f_code->co_cellvars)
 		      && PyTuple_Check(f->f_code->co_freevars)))
@@ -474,7 +474,8 @@
 			    locals, fast + f->f_nlocals, 1, clear);
 		dict_to_map(f->f_code->co_freevars, 
 			    PyTuple_GET_SIZE(f->f_code->co_freevars),
-			    locals, fast + f->f_nlocals + f->f_ncells, 1, clear);
+			    locals, fast + f->f_nlocals + f->f_ncells, 1, 
+			    clear);
 	}
 	PyErr_Restore(error_type, error_value, error_traceback);
 }
