keyword arguments and faster calls
diff --git a/Python/pythonrun.c b/Python/pythonrun.c
index 2268c71..f087545 100644
--- a/Python/pythonrun.c
+++ b/Python/pythonrun.c
@@ -430,7 +430,7 @@
 	freetree(n);
 	if (co == NULL)
 		return NULL;
-	v = eval_code(co, globals, locals, (object *)NULL, (object *)NULL);
+	v = eval_code(co, globals, locals);
 	DECREF(co);
 	return v;
 }
@@ -462,7 +462,7 @@
 		return NULL;
 	}
 	co = (codeobject *)v;
-	v = eval_code(co, globals, locals, (object *)NULL, (object *)NULL);
+	v = eval_code(co, globals, locals);
 	DECREF(co);
 	return v;
 }
@@ -603,16 +603,9 @@
 	object *exitfunc = sysget("exitfunc");
 
 	if (exitfunc) {
-		object *arg;
 		object *res;
 		sysset("exitfunc", (object *)NULL);
-		arg = newtupleobject(0);
-		if (arg == NULL)
-			res = NULL;
-		else {
-			res = call_object(exitfunc, arg);
-			DECREF(arg);
-		}
+		res = call_object(exitfunc, (object *)NULL);
 		if (res == NULL) {
 			fprintf(stderr, "Error in sys.exitfunc:\n");
 			print_error();