diff -r c1a698edfa1b Modules/_functoolsmodule.c --- a/Modules/_functoolsmodule.c Tue Aug 23 16:22:35 2016 +0200 +++ b/Modules/_functoolsmodule.c Tue Aug 23 16:32:57 2016 +0200 @@ -160,19 +160,23 @@ partial_call(partialobject *pto, PyObjec Py_XINCREF(kwappl); } else { - kwappl = PyDict_Copy(pto->kw); - if (kwappl == NULL) { - Py_XDECREF(argappl); - return NULL; - } + if (kw != NULL) { + kwappl = PyDict_Copy(pto->kw); + if (kwappl == NULL) { + Py_XDECREF(argappl); + return NULL; + } - if (kw != NULL) { if (PyDict_Merge(kwappl, kw, 1) != 0) { Py_XDECREF(argappl); Py_DECREF(kwappl); return NULL; } } + else { + kwappl = pto->kw; + Py_INCREF(kwappl); + } } if (stack) {