Index: Include/object.h =================================================================== --- Include/object.h (revision 65957) +++ Include/object.h (working copy) @@ -143,7 +143,7 @@ /* buffer interface */ typedef struct bufferinfo { void *buf; - PyObject *obj; /* borrowed reference */ + PyObject *obj; /* owned reference */ Py_ssize_t len; Py_ssize_t itemsize; /* This is Py_ssize_t so it can be pointed to by strides in simple case.*/ Index: Objects/abstract.c =================================================================== --- Objects/abstract.c (revision 65957) +++ Objects/abstract.c (working copy) @@ -260,6 +260,8 @@ *buffer_len = view.len; if (pb->bf_releasebuffer != NULL) (*pb->bf_releasebuffer)(obj, &view); + if(view.obj) + Py_DECREF(view.obj); return 0; } @@ -305,6 +307,8 @@ *buffer_len = view.len; if (pb->bf_releasebuffer != NULL) (*pb->bf_releasebuffer)(obj, &view); + if(view.obj) + Py_DECREF(view.obj); return 0; }