#2964: fix missing INCREF.
diff --git a/Misc/NEWS b/Misc/NEWS
index f385560..08bd092 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -12,6 +12,8 @@
Core and Builtins
-----------------
+- Issue #2964: fix a missing INCREF in instancemethod_descr_get.
+
- Issue 2895: Don't crash when given bytes objects as keyword names.
- Issue 2798: When parsing arguments with PyArg_ParseTuple, the "s" code now
diff --git a/Objects/classobject.c b/Objects/classobject.c
index 0e131eb..3c2bc3d 100644
--- a/Objects/classobject.c
+++ b/Objects/classobject.c
@@ -501,8 +501,10 @@
static PyObject *
instancemethod_descr_get(PyObject *descr, PyObject *obj, PyObject *type) {
register PyObject *func = PyInstanceMethod_GET_FUNCTION(descr);
- if (obj == NULL)
+ if (obj == NULL) {
+ Py_INCREF(func);
return func;
+ }
else
return PyMethod_New(func, obj);
}