bool is no longer required, it was only used for the print statement
diff --git a/Parser/Python.asdl b/Parser/Python.asdl
index fc1a6da..c5b64a9 100644
--- a/Parser/Python.asdl
+++ b/Parser/Python.asdl
@@ -1,4 +1,4 @@
--- ASDL's five builtin types are identifier, int, string, object, bool
+-- ASDL's five builtin types are identifier, int, string, object
 
 module Python version "$Revision$"
 {
diff --git a/Parser/asdl_c.py b/Parser/asdl_c.py
index 4877853..325a2b6 100755
--- a/Parser/asdl_c.py
+++ b/Parser/asdl_c.py
@@ -15,7 +15,7 @@
     """Return a string for the C name of the type.
 
     This function special cases the default types provided by asdl:
-    identifier, string, int, bool.
+    identifier, string, int.
     """
     # XXX ack!  need to figure out where Id is useful and where string
     if isinstance(name, asdl.Id):
@@ -288,8 +288,7 @@
         emit("{")
         emit("%s p;" % ctype, 1)
         for argtype, argname, opt in args:
-            # XXX hack alert: false is allowed for a bool
-            if not opt and not (argtype == "bool" or argtype == "int"):
+            if not opt and argtype != "int":
                 emit("if (!%s) {" % argname, 1)
                 emit("PyErr_SetString(PyExc_ValueError,", 2)
                 msg = "field %s is required for %s" % (argname, name)
@@ -467,10 +466,6 @@
 }
 #define ast2obj_identifier ast2obj_object
 #define ast2obj_string ast2obj_object
-static PyObject* ast2obj_bool(bool b)
-{
-    return PyBool_FromLong(b);
-}
 
 static PyObject* ast2obj_int(long b)
 {