changes for keyword args to built-in functions and classes
diff --git a/Objects/classobject.c b/Objects/classobject.c
index 9870b6e..d4a873f6 100644
--- a/Objects/classobject.c
+++ b/Objects/classobject.c
@@ -279,9 +279,10 @@
 }
 
 object *
-newinstanceobject(class, arg)
+newinstanceobject(class, arg, kw)
 	object *class;
 	object *arg;
+	object *kw;
 {
 	register instanceobject *inst;
 	object *init;
@@ -303,16 +304,16 @@
 	init = instance_getattr1(inst, "__init__");
 	if (init == NULL) {
 		err_clear();
-		if (arg != NULL && !(is_tupleobject(arg) &&
-				     gettuplesize(arg) == 0)) {
+		if (arg != NULL && (!is_tupleobject(arg) ||
+				    gettuplesize(arg) != 0) || kw != NULL) {
 			err_setstr(TypeError,
-				"this classobject() takes no arguments");
+				   "this constructor takes no arguments");
 			DECREF(inst);
 			inst = NULL;
 		}
 	}
 	else {
-		object *res = call_object(init, arg);
+		object *res = PyEval_CallObjectWithKeywords(init, arg, kw);
 		DECREF(init);
 		if (res == NULL) {
 			DECREF(inst);