Merge
diff --git a/Misc/NEWS b/Misc/NEWS
index 71fead5..05139f2 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -10,6 +10,9 @@
 Core and Builtins
 -----------------
 
+- Issue #15291: Fix a memory leak where AST nodes where not properly
+  deallocated.
+
 - Issue #15110: Fix the tracebacks generated by "import xxx" to not show
   the importlib stack frames.
 
diff --git a/Parser/asdl_c.py b/Parser/asdl_c.py
index 769f73f..e4165b0 100755
--- a/Parser/asdl_c.py
+++ b/Parser/asdl_c.py
@@ -612,6 +612,7 @@
 ast_dealloc(AST_object *self)
 {
     Py_CLEAR(self->dict);
+    Py_TYPE(self)->tp_free(self);
 }
 
 static int
diff --git a/Python/Python-ast.c b/Python/Python-ast.c
index 4ca269f..60147fa 100644
--- a/Python/Python-ast.c
+++ b/Python/Python-ast.c
@@ -464,6 +464,7 @@
 ast_dealloc(AST_object *self)
 {
     Py_CLEAR(self->dict);
+    Py_TYPE(self)->tp_free(self);
 }
 
 static int