fix #1409: cell variables were not initialized,
when the value comes from a keyword-only parameter.
diff --git a/Lib/test/test_scope.py b/Lib/test/test_scope.py
index 22f254a..ccb9016 100644
--- a/Lib/test/test_scope.py
+++ b/Lib/test/test_scope.py
@@ -166,6 +166,17 @@
         self.assertEqual(t.method_and_var(), "method")
         self.assertEqual(t.actual_global(), "global")
 
+    def testCellIsKwonlyArg(self):
+        # Issue 1409: Initialisation of a cell value,
+        # when it comes from a keyword-only parameter
+        def foo(*, a=17):
+            def bar():
+                return a + 5
+            return bar() + 3
+
+        self.assertEqual(foo(a=42), 50)
+        self.assertEqual(foo(), 25)
+
     def testRecursion(self):
 
         def f(x):
diff --git a/Python/ceval.c b/Python/ceval.c
index 70086e1..b4efa33 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -2708,7 +2708,7 @@
 		Py_UNICODE *cellname, *argname;
 		PyObject *c;
 
-		nargs = co->co_argcount;
+		nargs = co->co_argcount + co->co_kwonlyargcount;
 		if (co->co_flags & CO_VARARGS)
 			nargs++;
 		if (co->co_flags & CO_VARKEYWORDS)