diff --git a/Modules/pyexpat.c b/Modules/pyexpat.c
index fc419b1..8b73e1e 100644
--- a/Modules/pyexpat.c
+++ b/Modules/pyexpat.c
@@ -829,7 +829,7 @@
 
     PyTuple_SET_ITEM(arg, 0, bytes);
 
-    if ((str = PyObject_CallObject(meth, arg)) == NULL)
+    if ((str = PyObject_Call(meth, arg, NULL)) == NULL)
         goto finally;
 
     /* XXX what to do if it returns a Unicode string? */
diff --git a/Objects/abstract.c b/Objects/abstract.c
index fc73a9f..9940fd3 100644
--- a/Objects/abstract.c
+++ b/Objects/abstract.c
@@ -1727,7 +1727,7 @@
 			return NULL;
 		args = a;
 	}
-	retval = PyObject_CallObject(callable, args);
+	retval = PyObject_Call(callable, args, NULL);
 
 	Py_DECREF(args);
 
@@ -1774,7 +1774,7 @@
 		args = a;
 	}
 
-	retval = PyObject_CallObject(func, args);
+	retval = PyObject_Call(func, args, NULL);
 
 	Py_DECREF(args);
 	Py_DECREF(func);
diff --git a/Objects/iterobject.c b/Objects/iterobject.c
index 4dc225a..2e1caae 100644
--- a/Objects/iterobject.c
+++ b/Objects/iterobject.c
@@ -163,7 +163,12 @@
 calliter_iternext(calliterobject *it)
 {
 	if (it->it_callable != NULL) {
-		PyObject *result = PyObject_CallObject(it->it_callable, NULL);
+		PyObject *args = PyTuple_New(0);
+		PyObject *result;
+		if (args == NULL)
+			return NULL;
+		result = PyObject_Call(it->it_callable, args, NULL);
+		Py_DECREF(args);
 		if (result != NULL) {
 			int ok;
 			ok = PyObject_RichCompareBool(result,
diff --git a/Objects/typeobject.c b/Objects/typeobject.c
index c3c5893..a12e7df 100644
--- a/Objects/typeobject.c
+++ b/Objects/typeobject.c
@@ -3257,7 +3257,7 @@
 static int
 slot_nb_nonzero(PyObject *self)
 {
-	PyObject *func, *res;
+	PyObject *func, *res, *args;
 	static PyObject *nonzero_str, *len_str;
 
 	func = lookup_maybe(self, "__nonzero__", &nonzero_str);
@@ -3272,7 +3272,11 @@
 				return 1;
 		}
 	}
-	res = PyObject_CallObject(func, NULL);
+	args = res = PyTuple_New(0);
+	if (args != NULL) {
+		res = PyObject_Call(func, args, NULL);
+		Py_DECREF(args);
+	}
 	Py_DECREF(func);
 	if (res == NULL)
 		return -1;
@@ -3651,9 +3655,14 @@
 
 	func = lookup_method(self, "__iter__", &iter_str);
 	if (func != NULL) {
-		 res = PyObject_CallObject(func, NULL);
-		 Py_DECREF(func);
-		 return res;
+		PyObject *args;
+		args = res = PyTuple_New(0);
+		if (args != NULL) {
+			res = PyObject_Call(func, args, NULL);
+			Py_DECREF(args);
+		}
+		Py_DECREF(func);
+		return res;
 	}
 	PyErr_Clear();
 	func = lookup_method(self, "__getitem__", &getitem_str);
diff --git a/Parser/tokenizer.c b/Parser/tokenizer.c
index 7e7a370..4119c43 100644
--- a/Parser/tokenizer.c
+++ b/Parser/tokenizer.c
@@ -327,12 +327,16 @@
 #ifndef Py_USING_UNICODE
 	/* In a non-Unicode built, this should never be called. */
 	Py_FatalError("fp_readl should not be called in this build.");
-	return NULL;
+	return NULL; /* Keep compiler happy (not reachable) */
 #else
 	PyObject* utf8;
 	PyObject* buf = tok->decoding_buffer;
 	if (buf == NULL) {
-		buf = PyObject_CallObject(tok->decoding_readline, NULL);
+		PyObject *args = PyTuple_New(0);
+		if (args == NULL)
+			return error_ret(tok);
+		buf = PyObject_Call(tok->decoding_readline, args, NULL);
+		Py_DECREF(args);
 		if (buf == NULL)
 			return error_ret(tok);
 	} else {
@@ -464,7 +468,14 @@
 	} else {
 		PyObject* buf = tok->decoding_buffer;
 		if (buf == NULL) {
-			buf = PyObject_CallObject(tok->decoding_readline, NULL);
+			PyObject *args = PyTuple_New(0);
+			if (args == NULL) {
+				error_ret(tok);
+				return 1;
+			}
+			buf = PyObject_Call(tok->decoding_readline,
+					    args, NULL);
+			Py_DECREF(args);
 			if (buf == NULL) {
 				error_ret(tok);
 				return 1;
