diff --git a/Lib/test/test_new.py b/Lib/test/test_new.py
index 30433ae..6ea7707 100644
--- a/Lib/test/test_new.py
+++ b/Lib/test/test_new.py
@@ -66,7 +66,10 @@
 
 # bogus test of new.code()
 print 'new.code()'
-d = new.code(3, 3, 3, 3, codestr, (), (), (), (), (),
+d = new.code(3, 3, 3, 3, codestr, (), (), (), 
+             "<string>", "<name>", 1, "", (), ())
+# test backwards-compatibility version with no freevars or cellvars
+d = new.code(3, 3, 3, 3, codestr, (), (), (), 
              "<string>", "<name>", 1, "")
 if verbose:
     print d
diff --git a/Modules/newmodule.c b/Modules/newmodule.c
index 7c7bee7..7b91fb8 100644
--- a/Modules/newmodule.c
+++ b/Modules/newmodule.c
@@ -103,7 +103,9 @@
 }
 
 static char new_code_doc[] =
-"Create a code object from (ARGCOUNT, NLOCALS, STACKSIZE, FLAGS, CODESTRING, CONSTANTS, NAMES, VARNAMES, FREEVARS, CELLVARS, FILENAME, NAME, FIRSTLINENO, LNOTAB).";
+"Create a code object from (ARGCOUNT, NLOCALS, STACKSIZE, FLAGS, CODESTRING,\n"
+"CONSTANTS, NAMES, VARNAMES, FILENAME, NAME, FIRSTLINENO, LNOTAB, FREEVARS,\n"
+"CELLVARS).";
 
 static PyObject *
 new_code(PyObject* unused, PyObject* args)
@@ -116,26 +118,41 @@
 	PyObject* consts;
 	PyObject* names;
 	PyObject* varnames;
-	PyObject* freevars;
-	PyObject* cellvars;
+	PyObject* freevars = NULL;
+	PyObject* cellvars = NULL;
 	PyObject* filename;
 	PyObject* name;
 	int firstlineno;
 	PyObject* lnotab;
 	PyBufferProcs *pb;
 
-	if (!PyArg_ParseTuple(args, "iiiiOO!O!O!O!O!SSiS:code",
+	if (!PyArg_ParseTuple(args, "iiiiSO!O!O!SSiS|O!O!:code",
 			      &argcount, &nlocals, &stacksize, &flags,
 			      &code,
 			      &PyTuple_Type, &consts,
 			      &PyTuple_Type, &names,
 			      &PyTuple_Type, &varnames,
-			      &PyTuple_Type, &freevars,
-			      &PyTuple_Type, &cellvars,
 			      &filename, &name,
-			      &firstlineno, &lnotab))
+			      &firstlineno, &lnotab,
+			      &PyTuple_Type, &freevars,
+			      &PyTuple_Type, &cellvars))
 		return NULL;
 
+	if (freevars == NULL || cellvars == NULL) {
+		PyObject *empty = PyTuple_New(0);
+		if (empty == NULL)
+		    return NULL;
+		if (freevars == NULL) {
+		    freevars = empty;
+		    Py_INCREF(freevars);
+		}
+		if (cellvars == NULL) {
+		    cellvars = empty;
+		    Py_INCREF(cellvars);
+		}
+		Py_DECREF(empty);
+	}
+
 	pb = code->ob_type->tp_as_buffer;
 	if (pb == NULL ||
 	    pb->bf_getreadbuffer == NULL ||
