diff --git a/lib/modules/LR.pmod/parser.pike b/lib/modules/LR.pmod/parser.pike
index 38c6919620391d5ccb9efd9044bfdc505d6f906f..c09d6951aabf0ad23da3c07eb8496743c244a23c 100644
--- a/lib/modules/LR.pmod/parser.pike
+++ b/lib/modules/LR.pmod/parser.pike
@@ -1,5 +1,5 @@
 /*
- * $Id: parser.pike,v 1.13 1998/11/15 00:07:32 grubba Exp $
+ * $Id: parser.pike,v 1.14 1998/11/15 02:27:12 grubba Exp $
  *
  * A BNF-grammar in Pike.
  * Compiles to a LALR(1) state-machine.
@@ -9,7 +9,7 @@
 
 //.
 //. File:	parser.pike
-//. RCSID:	$Id: parser.pike,v 1.13 1998/11/15 00:07:32 grubba Exp $
+//. RCSID:	$Id: parser.pike,v 1.14 1998/11/15 02:27:12 grubba Exp $
 //. Author:	Henrik Grubbstr�m (grubba@infovav.se)
 //.
 //. Synopsis:	LALR(1) parser and compiler.
@@ -305,7 +305,9 @@ static private mapping(mixed : multiset(object(rule))) begins = ([]);
  */
 static private mapping(int : multiset(object(rule))) used_by = ([]);
 
-static private object(kernel) start_state;
+//. + start_state
+//.   The initial LR0 state.
+object(kernel) start_state;
 
 //. + verbose
 //.   Verbosity level
@@ -1308,11 +1310,8 @@ int compile()
 
 	/* Calculate Look-ahead for all items in look-back set */
 	
-	foreach (indices(i->relation), object(item) lookback) {
-	  /* Add Follow(i2) to the lookahead-set */
-
-	  i->direct_lookahead |= lookback->direct_lookahead;
-	}
+	i->direct_lookahead=`|(i->direct_lookahead,
+			       @indices(i->relation)->direct_lookahead);
       }
     }
   }