diff --git a/Modules/_operator.c b/Modules/_operator.c
index 10d7874..f2fd656 100644
--- a/Modules/_operator.c
+++ b/Modules/_operator.c
@@ -949,7 +949,7 @@
     PyObject *item;
     Py_ssize_t nitems;
 
-    if (!_PyArg_NoKeywords("itemgetter()", kwds))
+    if (!_PyArg_NoKeywords("itemgetter", kwds))
         return NULL;
 
     nitems = PyTuple_GET_SIZE(args);
@@ -1124,7 +1124,7 @@
     PyObject *attr;
     Py_ssize_t nattrs, idx, char_idx;
 
-    if (!_PyArg_NoKeywords("attrgetter()", kwds))
+    if (!_PyArg_NoKeywords("attrgetter", kwds))
         return NULL;
 
     nattrs = PyTuple_GET_SIZE(args);
diff --git a/Modules/_randommodule.c b/Modules/_randommodule.c
index 9953654..747a547 100644
--- a/Modules/_randommodule.c
+++ b/Modules/_randommodule.c
@@ -435,7 +435,7 @@
     RandomObject *self;
     PyObject *tmp;
 
-    if (type == &Random_Type && !_PyArg_NoKeywords("Random()", kwds))
+    if (type == &Random_Type && !_PyArg_NoKeywords("Random", kwds))
         return NULL;
 
     self = (RandomObject *)type->tp_alloc(type, 0);
diff --git a/Modules/_sqlite/connection.c b/Modules/_sqlite/connection.c
index fab77ef..e2ba758 100644
--- a/Modules/_sqlite/connection.c
+++ b/Modules/_sqlite/connection.c
@@ -1218,7 +1218,7 @@
         return NULL;
     }
 
-    if (!_PyArg_NoKeywords(MODULE_NAME ".Connection()", kwargs))
+    if (!_PyArg_NoKeywords(MODULE_NAME ".Connection", kwargs))
         return NULL;
 
     if (!PyArg_ParseTuple(args, "O", &sql))
diff --git a/Modules/_sqlite/row.c b/Modules/_sqlite/row.c
index c6c3e98..ec2c788 100644
--- a/Modules/_sqlite/row.c
+++ b/Modules/_sqlite/row.c
@@ -41,7 +41,7 @@
 
     assert(type != NULL && type->tp_alloc != NULL);
 
-    if (!_PyArg_NoKeywords("Row()", kwargs))
+    if (!_PyArg_NoKeywords("Row", kwargs))
         return NULL;
     if (!PyArg_ParseTuple(args, "OO", &cursor, &data))
         return NULL;
diff --git a/Modules/arraymodule.c b/Modules/arraymodule.c
index abb578a..06461c3 100644
--- a/Modules/arraymodule.c
+++ b/Modules/arraymodule.c
@@ -2568,7 +2568,7 @@
     PyObject *initial = NULL, *it = NULL;
     const struct arraydescr *descr;
 
-    if (type == &Arraytype && !_PyArg_NoKeywords("array.array()", kwds))
+    if (type == &Arraytype && !_PyArg_NoKeywords("array.array", kwds))
         return NULL;
 
     if (!PyArg_ParseTuple(args, "C|O:array", &c, &initial))
diff --git a/Modules/itertoolsmodule.c b/Modules/itertoolsmodule.c
index ee7bb66..d7a1ef0 100644
--- a/Modules/itertoolsmodule.c
+++ b/Modules/itertoolsmodule.c
@@ -871,7 +871,7 @@
     PyObject *saved;
     cycleobject *lz;
 
-    if (type == &cycle_type && !_PyArg_NoKeywords("cycle()", kwds))
+    if (type == &cycle_type && !_PyArg_NoKeywords("cycle", kwds))
         return NULL;
 
     if (!PyArg_UnpackTuple(args, "cycle", 1, 1, &iterable))
@@ -1072,7 +1072,7 @@
     PyObject *it;
     dropwhileobject *lz;
 
-    if (type == &dropwhile_type && !_PyArg_NoKeywords("dropwhile()", kwds))
+    if (type == &dropwhile_type && !_PyArg_NoKeywords("dropwhile", kwds))
         return NULL;
 
     if (!PyArg_UnpackTuple(args, "dropwhile", 2, 2, &func, &seq))
@@ -1240,7 +1240,7 @@
     PyObject *it;
     takewhileobject *lz;
 
-    if (type == &takewhile_type && !_PyArg_NoKeywords("takewhile()", kwds))
+    if (type == &takewhile_type && !_PyArg_NoKeywords("takewhile", kwds))
         return NULL;
 
     if (!PyArg_UnpackTuple(args, "takewhile", 2, 2, &func, &seq))
@@ -1408,7 +1408,7 @@
     Py_ssize_t numargs;
     isliceobject *lz;
 
-    if (type == &islice_type && !_PyArg_NoKeywords("islice()", kwds))
+    if (type == &islice_type && !_PyArg_NoKeywords("islice", kwds))
         return NULL;
 
     if (!PyArg_UnpackTuple(args, "islice", 2, 4, &seq, &a1, &a2, &a3))
@@ -1662,7 +1662,7 @@
     PyObject *it;
     starmapobject *lz;
 
-    if (type == &starmap_type && !_PyArg_NoKeywords("starmap()", kwds))
+    if (type == &starmap_type && !_PyArg_NoKeywords("starmap", kwds))
         return NULL;
 
     if (!PyArg_UnpackTuple(args, "starmap", 2, 2, &func, &seq))
@@ -1820,7 +1820,7 @@
 {
     PyObject *source;
 
-    if (type == &chain_type && !_PyArg_NoKeywords("chain()", kwds))
+    if (type == &chain_type && !_PyArg_NoKeywords("chain", kwds))
         return NULL;
 
     source = PyObject_GetIter(args);
@@ -3769,7 +3769,7 @@
     filterfalseobject *lz;
 
     if (type == &filterfalse_type &&
-        !_PyArg_NoKeywords("filterfalse()", kwds))
+        !_PyArg_NoKeywords("filterfalse", kwds))
         return NULL;
 
     if (!PyArg_UnpackTuple(args, "filterfalse", 2, 2, &func, &seq))
diff --git a/Modules/zipimport.c b/Modules/zipimport.c
index c9526ba..fad1b1f 100644
--- a/Modules/zipimport.c
+++ b/Modules/zipimport.c
@@ -69,7 +69,7 @@
     PyObject *filename = NULL;
     Py_ssize_t len, flen;
 
-    if (!_PyArg_NoKeywords("zipimporter()", kwds))
+    if (!_PyArg_NoKeywords("zipimporter", kwds))
         return -1;
 
     if (!PyArg_ParseTuple(args, "O&:zipimporter",
