diff --git a/main/astobj2.c b/main/astobj2.c
index 0bba65f17c..e9e2db7e5f 100644
--- a/main/astobj2.c
+++ b/main/astobj2.c
@@ -828,9 +828,18 @@ static void container_destruct(void *_c)
 static void container_destruct_debug(void *_c)
 {
 	struct ao2_container *c = _c;
+	int i;
 
 	_ao2_callback_debug(c, OBJ_UNLINK, cd_cb_debug, NULL, "container_destruct_debug called", __FILE__, __LINE__, __PRETTY_FUNCTION__);
 
+	for (i = 0; i < c->n_buckets; i++) {
+		struct bucket_list *cur;
+
+		while ((cur = AST_LIST_REMOVE_HEAD(&c->buckets[i], entry))) {
+			ast_free(cur);
+		}
+	}
+
 #ifdef AO2_DEBUG
 	ast_atomic_fetchadd_int(&ao2.total_containers, -1);
 #endif