diff --git a/python/descriptor_pool.c b/python/descriptor_pool.c
index fa9388b..adb70ef 100644
--- a/python/descriptor_pool.c
+++ b/python/descriptor_pool.c
@@ -46,12 +46,24 @@
   PyUpb_DescriptorPool* pool = PyObject_New(PyUpb_DescriptorPool, type);
   pool->symtab = upb_symtab_new();
   pool->db = db;
+  Py_XINCREF(pool->db);
   return &pool->ob_base;
 }
 
+static int PyUpb_DescriptorPool_Traverse(PyUpb_DescriptorPool* self,
+                                         visitproc visit, void* arg) {
+  Py_VISIT(self->db);
+  return 0;
+}
+
+static int PyUpb_DescriptorPool_Clear(PyUpb_DescriptorPool* self) {
+  Py_CLEAR(self->db);
+  return 0;
+}
+
 static void PyUpb_DescriptorPool_Dealloc(PyUpb_DescriptorPool* self) {
   upb_symtab_free(self->symtab);
-  Py_CLEAR(self->db);
+  PyUpb_DescriptorPool_Clear(self);
   PyObject_Del(self);
 }
 
@@ -105,7 +117,7 @@
       google_protobuf_FileDescriptorProto_parse(buf, size, arena);
   if (!proto) {
     PyErr_SetString(PyExc_TypeError, "Couldn't parse file content!");
-    return NULL;
+    goto done;
   }
 
   upb_status status;
@@ -116,7 +128,7 @@
     PyErr_Format(PyExc_TypeError,
                  "Couldn't build proto file into descriptor pool: %s",
                  upb_status_errmsg(&status));
-    return NULL;
+    goto done;
   }
 
   result = PyUpb_FileDescriptor_GetOrCreateWrapper(filedef, _self);
@@ -137,9 +149,7 @@
   PyUpb_DescriptorPool* self = (PyUpb_DescriptorPool*)_self;
 
   const char* name = PyUpb_GetStrData(arg);
-  if (!name) {
-    return NULL;
-  }
+  if (!name) return NULL;
 
   const upb_fielddef* field = upb_symtab_lookupext(self->symtab, name);
   if (field == NULL) {
@@ -186,16 +196,18 @@
     {NULL}};
 
 static PyType_Slot PyUpb_DescriptorPool_Slots[] = {
-    {Py_tp_new, PyUpb_DescriptorPool_New},
+    {Py_tp_clear, PyUpb_DescriptorPool_Clear},
     {Py_tp_dealloc, PyUpb_DescriptorPool_Dealloc},
     {Py_tp_methods, PyUpb_DescriptorPool_Methods},
+    {Py_tp_new, PyUpb_DescriptorPool_New},
+    {Py_tp_traverse, PyUpb_DescriptorPool_Traverse},
     {0, NULL}};
 
 static PyType_Spec PyUpb_DescriptorPool_Spec = {
-    PYUPB_MODULE_NAME ".DescriptorPool",  // tp_name
-    sizeof(PyUpb_DescriptorPool),         // tp_basicsize
-    0,                                    // tp_itemsize
-    Py_TPFLAGS_DEFAULT,                   // tp_flags
+    PYUPB_MODULE_NAME ".DescriptorPool",
+    sizeof(PyUpb_DescriptorPool),
+    0,  // tp_itemsize
+    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,
     PyUpb_DescriptorPool_Slots,
 };
 
