diff -r 7530caa5ed1a Objects/descrobject.c --- a/Objects/descrobject.c Wed Apr 20 10:02:04 2016 +0200 +++ b/Objects/descrobject.c Thu Apr 21 10:51:13 2016 +0300 @@ -1393,14 +1393,16 @@ property_descr_get(PyObject *self, PyObj } Py_INCREF(args); assert (Py_REFCNT(args) == 2); + Py_SIZE(args) = 1; Py_INCREF(obj); PyTuple_SET_ITEM(args, 0, obj); ret = PyObject_Call(gs->prop_get, args, NULL); if (args == cached_args) { if (Py_REFCNT(args) == 2) { - obj = PyTuple_GET_ITEM(args, 0); - PyTuple_SET_ITEM(args, 0, NULL); - Py_XDECREF(obj); + assert(Py_SIZE(args) == 1); + assert(PyTuple_GET_ITEM(args, 0) == obj); + Py_SIZE(args) = 0; + Py_DECREF(obj); } else { Py_CLEAR(cached_args);