#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);
 }