Properly use &&. Closes bug #434989.
diff --git a/Modules/parsermodule.c b/Modules/parsermodule.c
index 030b5cd..13fdfae 100644
--- a/Modules/parsermodule.c
+++ b/Modules/parsermodule.c
@@ -2524,7 +2524,7 @@
     int   res  = 1;                     /* result value                   */
     node* next = 0;                     /* node to process after this one */
 
-    while (res & (tree != 0)) {
+    while (res && (tree != 0)) {
         nch  = NCH(tree);
         next = 0;
         switch (TYPE(tree)) {