Avoid a potential double-free bug.
diff --git a/Modules/_ctypes/_ctypes.c b/Modules/_ctypes/_ctypes.c
index ac4859e..daaec02 100644
--- a/Modules/_ctypes/_ctypes.c
+++ b/Modules/_ctypes/_ctypes.c
@@ -3191,8 +3191,10 @@
 	Py_CLEAR(self->converters);
 	Py_CLEAR(self->paramflags);
 
-	if (self->thunk)
+	if (self->thunk) {
 		FreeCallback(self->thunk);
+		PyMem_Free(self->thunk);
+	}
 	self->thunk = NULL;
 
 	return CData_clear((CDataObject *)self);
diff --git a/Modules/_ctypes/callbacks.c b/Modules/_ctypes/callbacks.c
index 286faa3..4b1ca58 100644
--- a/Modules/_ctypes/callbacks.c
+++ b/Modules/_ctypes/callbacks.c
@@ -292,7 +292,6 @@
 void FreeCallback(THUNK thunk)
 {
 	FreeClosure(((ffi_info *)thunk)->pcl);
-	PyMem_Free(thunk);
 }
 
 THUNK AllocFunctionCallback(PyObject *callable,