diff -Naur yacc-1.9.1-orig/skeleton.c yacc-1.9.1/skeleton.c
--- yacc-1.9.1-orig/skeleton.c	2008-07-17 20:01:30.000000000 +0300
+++ yacc-1.9.1/skeleton.c	2008-07-17 20:02:55.000000000 +0300
@@ -18,6 +18,7 @@
     "/*static char yysccsid[] = \"from: @(#)yaccpar	1.9 (Berkeley) 02/21/93\";*/",
     "static char yyrcsid[] = \"$Id: skeleton.c,v 1.2 1997/06/23 02:51:17 tdukes Exp $\";",
     "#endif",
+    "#include <string.h>",
     "#define YYBYACC 1",
     "#define YYMAJOR 1",
     "#define YYMINOR 9",
@@ -226,7 +227,10 @@
     "                YYPREFIX, yystate, yyn, yyrule[yyn]);",
     "#endif",
     "    yym = yylen[yyn];",
-    "    yyval = yyvsp[1-yym];",
+    "    if (yym)",
+    "        yyval = yyvsp[1-yym];",
+    "    else",
+    "        memset(&yyval, 0, sizeof yyval);",
     "    switch (yyn)",
     "    {",
     0
