I suppose a bug report or even a fix would be a better response, but
commit a yelp about a noted flaw the error messages for METH_KEYWORDS
functions under some circumstances.
diff --git a/Python/getargs.c b/Python/getargs.c
index 48f9dc4..e89f0d5 100644
--- a/Python/getargs.c
+++ b/Python/getargs.c
@@ -1299,7 +1299,8 @@
 	/* make sure we got an acceptable number of arguments; the message
 	   is a little confusing with keywords since keyword arguments
 	   which are supplied, but don't match the required arguments
-	   are not included in the "%d given" part of the message */
+	   are not included in the "%d given" part of the message 
+	   XXX and this isn't a bug!? */
 	if (len < min || max < len) {
 		if (message == NULL) {
 			PyOS_snprintf(msgbuf, sizeof(msgbuf),