Avoid reinitializing the types twice.
diff --git a/Parser/asdl_c.py b/Parser/asdl_c.py
index a853f5e..e1dd463 100755
--- a/Parser/asdl_c.py
+++ b/Parser/asdl_c.py
@@ -446,6 +446,7 @@
         self.emit("static int init_types(void)",0)
         self.emit("{", 0)
         self.emit("if (initialized) return 1;", 1)
+        self.emit("initialized = 1;", 1)
         for dfn in mod.dfns:
             self.visit(dfn)
         self.emit("return 1;", 0);
diff --git a/Python/Python-ast.c b/Python/Python-ast.c
index cf27129..6935851 100644
--- a/Python/Python-ast.c
+++ b/Python/Python-ast.c
@@ -392,6 +392,7 @@
 static int init_types(void)
 {
         if (initialized) return 1;
+        initialized = 1;
         mod_type = make_type("mod", &PyBaseObject_Type, NULL, 0);
         Module_type = make_type("Module", mod_type, Module_fields, 1);
         Interactive_type = make_type("Interactive", mod_type,