diff --git a/src/language.yacc b/src/language.yacc
index ce5186d5e2a8c8a3ee086ed8ea9cd0622ca59919..33dd47ae79e8932be5bf9237816dab9c821fd054 100644
--- a/src/language.yacc
+++ b/src/language.yacc
@@ -4,7 +4,6 @@
 ||| See the files COPYING and DISCLAIMER for more information.
 \*/
 %pure_parser
-
 /*
  * These values are used by the stack machine, and can not be directly
  * called from Pike.
@@ -162,7 +161,7 @@
 /* This is the grammar definition of Pike. */
 
 #include "global.h"
-RCSID("$Id: language.yacc,v 1.64 1998/03/04 16:42:45 grubba Exp $");
+RCSID("$Id: language.yacc,v 1.65 1998/03/04 22:17:05 hubbe Exp $");
 #ifdef HAVE_MEMORY_H
 #include <memory.h>
 #endif
@@ -311,6 +310,7 @@ int yylex(YYSTYPE *yylval);
 %type <n> expr2
 %type <n> expr3 expr0
 %type <n> expr4
+%type <n> expr5
 %type <n> expr_list
 %type <n> expr_list2
 %type <n> for
@@ -1249,9 +1249,9 @@ expr4: string
   }
   | '(' comma_expr2 ')' { $$=$2; }
   | '(' '{' expr_list '}' ')'
-    { $$=mkefuncallnode("aggregate",$3); }
+    { $$=mkefuncallnode("aggregate",$2); }
   | '(' '[' m_expr_list ']' ')'
-    { $$=mkefuncallnode("aggregate_mapping",$3); };
+    { $$=mkefuncallnode("aggregate_mapping",$2); };
   | F_MULTISET_START expr_list F_MULTISET_END
     { $$=mkefuncallnode("aggregate_multiset",$2); }
   | expr4 F_ARROW F_IDENTIFIER
diff --git a/src/lex.c b/src/lex.c
index bc5f4d3840b16f67541118f6996e8c7a5a8d9b6d..b868ece664260f75087cee4e6e5d7ff147d3cfd4 100644
--- a/src/lex.c
+++ b/src/lex.c
@@ -4,7 +4,7 @@
 ||| See the files COPYING and DISCLAIMER for more information.
 \*/
 #include "global.h"
-RCSID("$Id: lex.c,v 1.43 1998/02/01 04:01:36 hubbe Exp $");
+RCSID("$Id: lex.c,v 1.44 1998/03/04 22:15:40 hubbe Exp $");
 #include "language.h"
 #include "array.h"
 #include "lex.h"
@@ -656,13 +656,13 @@ static int yylex2(YYSTYPE *yylval)
       if(GOBBLE('<')) return F_MULTISET_START;
       return '(';
 
+    case ']':
     case '?':
     case ',':
     case '~':
     case '@':
     case ')':
     case '[':
-    case ']':
     case '{':
     case ';':
     case '}': return c;