diff --git a/Lib/ctypes/test/test_callbacks.py b/Lib/ctypes/test/test_callbacks.py
index e3e4be8..8f8f4b2 100644
--- a/Lib/ctypes/test/test_callbacks.py
+++ b/Lib/ctypes/test/test_callbacks.py
@@ -118,6 +118,22 @@
         prototype = self.functype.im_func(object)
         self.assertRaises(TypeError, prototype, lambda: None)
 
+    def test_issue_7959(self):
+        proto = self.functype.im_func(None)
+
+        class X(object):
+            def func(self): pass
+            def __init__(self):
+                self.v = proto(self.func)
+
+        import gc
+        for i in range(32):
+            X()
+        gc.collect()
+        live = [x for x in gc.get_objects()
+                if isinstance(x, X)]
+        self.failUnlessEqual(len(live), 0)
+
 try:
     WINFUNCTYPE
 except NameError:
diff --git a/Misc/NEWS b/Misc/NEWS
index 9882fad..8d8a66b 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -66,6 +66,9 @@
 Library
 -------
 
+- Issue #7959: ctypes callback functions are now registered correctly
+  with the cylce garbage collector.
+
 - Issue #6243: curses.getkey() can segfault when used with ungetch.
   Fix by Trundle and Jerry Chen.
 
diff --git a/Modules/_ctypes/callbacks.c b/Modules/_ctypes/callbacks.c
index ea43c68..58c0dca 100644
--- a/Modules/_ctypes/callbacks.c
+++ b/Modules/_ctypes/callbacks.c
@@ -23,7 +23,7 @@
 	Py_XDECREF(self->restype);
 	if (self->pcl)
 		FreeClosure(self->pcl);
-	PyObject_Del(self);
+	PyObject_GC_Del(self);
 }
 
 static int
@@ -66,7 +66,7 @@
 	0,					/* tp_getattro */
 	0,					/* tp_setattro */
 	0,					/* tp_as_buffer */
-	Py_TPFLAGS_DEFAULT,			/* tp_flags */
+	Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,			/* tp_flags */
 	"CThunkObject",				/* tp_doc */
 	CThunkObject_traverse,			/* tp_traverse */
 	CThunkObject_clear,	       		/* tp_clear */
@@ -367,7 +367,7 @@
 	CThunkObject *p;
 	int i;
 
-	p = PyObject_NewVar(CThunkObject, &CThunk_Type, nArgs);
+	p = PyObject_GC_NewVar(CThunkObject, &CThunk_Type, nArgs);
 	if (p == NULL) {
 		PyErr_NoMemory();
 		return NULL;
@@ -382,6 +382,7 @@
 	
 	for (i = 0; i < nArgs + 1; ++i)
 		p->atypes[i] = NULL;
+	PyObject_GC_Track((PyObject *)p);
 	return p;
 }
 
