don't count keyword arguments as positional #9943
diff --git a/Misc/NEWS b/Misc/NEWS
index 489d6a9..8d7f328 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -10,6 +10,9 @@
 Core and Builtins
 -----------------
 
+- Issue #9943: Improve the TypeError raised for passing too many positional
+  arguments.
+
 - Issue #9930: Remove bogus subtype check that was causing (e.g.)
   float.__rdiv__(2.0, 3) to return NotImplemented instead of the
   expected 1.5.
diff --git a/Python/ceval.c b/Python/ceval.c
index 48b5678..84781be 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -3104,7 +3104,7 @@
                     defcount ? "at most" : "exactly",
                     co->co_argcount,
                     co->co_argcount == 1 ? "" : "s",
-                    argcount + kwcount);
+                    argcount);
                 goto fail;
             }
             n = co->co_argcount;