diff --git a/src/language.yacc b/src/language.yacc
index 0e7cda94d7e2d751256cdb0cbc12670f5d2efefe..b350ce86795ddea058c6d132e8afa98424d367b0 100644
--- a/src/language.yacc
+++ b/src/language.yacc
@@ -177,7 +177,7 @@
 /* This is the grammar definition of Pike. */
 
 #include "global.h"
-RCSID("$Id: language.yacc,v 1.94 1998/04/30 06:32:36 hubbe Exp $");
+RCSID("$Id: language.yacc,v 1.95 1998/04/30 16:30:37 hubbe Exp $");
 #ifdef HAVE_MEMORY_H
 #include <memory.h>
 #endif
@@ -966,8 +966,8 @@ new_local_name: optional_stars F_IDENTIFIER
     $$=mknode(F_ASSIGN,mkintnode(0),mklocalnode(islocal($2->u.sval.u.string)));
     free_node($2);
   }
-  | optional_stars bad_identifier {}
-  | optional_stars F_IDENTIFIER '=' expr0
+  | optional_stars bad_identifier { $$=0; }
+  | optional_stars F_IDENTIFIER '=' expr0 
   {
     push_finished_type($<n>0->u.sval.u.string);
     while($1--) push_type(T_ARRAY);
@@ -978,11 +978,13 @@ new_local_name: optional_stars F_IDENTIFIER
   | optional_stars bad_identifier '=' expr0
   {
     free_node($4);
+    $$=0;
   }
   | optional_stars F_IDENTIFIER '=' error
   {
     free_node($2);
     /* No yyerok here since we aren't done yet. */
+    $$=0;
   }
   ;