diff --git a/Modules/_asynciomodule.c b/Modules/_asynciomodule.c index bc0f7f3901e0eda..01c231bbb762a9f 100644 --- a/Modules/_asynciomodule.c +++ b/Modules/_asynciomodule.c @@ -1202,9 +1202,11 @@ _asyncio_Future_remove_done_callback_impl(FutureObj *self, PyTypeObject *cls, j++; continue; } - ret = PyList_Append(newlist, item); + ret = _PyList_AppendTakeRef((PyListObject *)newlist, item); + } + else { + Py_DECREF(item); } - Py_DECREF(item); if (ret < 0) { goto fail; }