In the Ubuntu 9.10 version of Python 3.1 (using your patch), there's a related bug:
>>> foo(b='b') will set the value of a in the extension module to zero, thus clearing whatever default value it may have had. In other words, the optional character arguments that are skipped seem to be nulled by PyArg_ParseTupleAndKeywords(). -- http://mail.python.org/mailman/listinfo/python-list