Index: Singular/grammar.cc
===================================================================
--- Singular/grammar.cc	(revision 9dbae536bb30691a749ee73d6d55dda411348cdd)
+++ Singular/grammar.cc	(revision 7647014cff9c8ca00602981c4101699a8d02c1fd)
@@ -754,9 +754,9 @@
      939,   965,   986,   994,   998,   999,  1013,  1021,  1030,  1075,
     1076,  1085,  1086,  1092,  1099,  1101,  1103,  1113,  1112,  1120,
-    1125,  1132,  1140,  1152,  1168,  1187,  1191,  1195,  1200,  1204,
-    1208,  1212,  1216,  1221,  1227,  1233,  1239,  1245,  1251,  1257,
-    1269,  1276,  1280,  1317,  1324,  1329,  1342,  1348,  1348,  1351,
-    1419,  1423,  1452,  1465,  1482,  1491,  1496,  1504,  1516,  1535,
-    1545,  1564,  1587,  1593,  1605,  1611
+    1125,  1132,  1140,  1152,  1169,  1189,  1193,  1197,  1202,  1206,
+    1210,  1214,  1218,  1223,  1229,  1235,  1241,  1247,  1253,  1259,
+    1271,  1278,  1282,  1319,  1326,  1331,  1344,  1350,  1350,  1353,
+    1421,  1425,  1454,  1467,  1484,  1493,  1498,  1506,  1518,  1537,
+    1547,  1566,  1589,  1595,  1607,  1613
 };
 #endif
@@ -3644,4 +3644,5 @@
             {
                Werror("`%s` is undefined in kill",v->name);
+	       omFree((ADDRESS)v->name); v->name=NULL;
             }
             else               WerrorS("kill what ?");
@@ -3657,5 +3658,5 @@
 
 /* Line 1464 of yacc.c  */
-#line 1169 "grammar.y"
+#line 1170 "grammar.y"
     {
           leftv v=&(yyvsp[(3) - (3)].lv);
@@ -3665,4 +3666,5 @@
             {
                Werror("`%s` is undefined in kill",v->name);
+	       omFree((ADDRESS)v->name); v->name=NULL;
             }
             else               WerrorS("kill what ?");
@@ -3678,5 +3680,5 @@
 
 /* Line 1464 of yacc.c  */
-#line 1188 "grammar.y"
+#line 1190 "grammar.y"
     {
             list_cmd((yyvsp[(3) - (4)].i),NULL,"// ",TRUE);
@@ -3687,5 +3689,5 @@
 
 /* Line 1464 of yacc.c  */
-#line 1192 "grammar.y"
+#line 1194 "grammar.y"
     {
             list_cmd((yyvsp[(3) - (4)].i),NULL,"// ",TRUE);
@@ -3696,5 +3698,5 @@
 
 /* Line 1464 of yacc.c  */
-#line 1196 "grammar.y"
+#line 1198 "grammar.y"
     {
             if ((yyvsp[(3) - (4)].i)==QRING_CMD) (yyvsp[(3) - (4)].i)=RING_CMD;
@@ -3706,5 +3708,5 @@
 
 /* Line 1464 of yacc.c  */
-#line 1201 "grammar.y"
+#line 1203 "grammar.y"
     {
             list_cmd((yyvsp[(3) - (4)].i),NULL,"// ",TRUE);
@@ -3715,5 +3717,5 @@
 
 /* Line 1464 of yacc.c  */
-#line 1205 "grammar.y"
+#line 1207 "grammar.y"
     {
             list_cmd(RING_CMD,NULL,"// ",TRUE);
@@ -3724,5 +3726,5 @@
 
 /* Line 1464 of yacc.c  */
-#line 1209 "grammar.y"
+#line 1211 "grammar.y"
     {
             list_cmd((yyvsp[(3) - (4)].i),NULL,"// ",TRUE);
@@ -3733,5 +3735,5 @@
 
 /* Line 1464 of yacc.c  */
-#line 1213 "grammar.y"
+#line 1215 "grammar.y"
     {
             list_cmd(PROC_CMD,NULL,"// ",TRUE);
@@ -3742,5 +3744,5 @@
 
 /* Line 1464 of yacc.c  */
-#line 1217 "grammar.y"
+#line 1219 "grammar.y"
     {
             list_cmd(0,(yyvsp[(3) - (4)].lv).Fullname(),"// ",TRUE);
@@ -3752,5 +3754,5 @@
 
 /* Line 1464 of yacc.c  */
-#line 1222 "grammar.y"
+#line 1224 "grammar.y"
     {
             if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD)
@@ -3763,5 +3765,5 @@
 
 /* Line 1464 of yacc.c  */
-#line 1228 "grammar.y"
+#line 1230 "grammar.y"
     {
             if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD)
@@ -3774,5 +3776,5 @@
 
 /* Line 1464 of yacc.c  */
-#line 1234 "grammar.y"
+#line 1236 "grammar.y"
     {
             if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD)
@@ -3785,5 +3787,5 @@
 
 /* Line 1464 of yacc.c  */
-#line 1240 "grammar.y"
+#line 1242 "grammar.y"
     {
             if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD)
@@ -3796,5 +3798,5 @@
 
 /* Line 1464 of yacc.c  */
-#line 1246 "grammar.y"
+#line 1248 "grammar.y"
     {
             if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD)
@@ -3807,5 +3809,5 @@
 
 /* Line 1464 of yacc.c  */
-#line 1252 "grammar.y"
+#line 1254 "grammar.y"
     {
             if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD)
@@ -3818,5 +3820,5 @@
 
 /* Line 1464 of yacc.c  */
-#line 1258 "grammar.y"
+#line 1260 "grammar.y"
     {
             if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD)
@@ -3829,5 +3831,5 @@
 
 /* Line 1464 of yacc.c  */
-#line 1270 "grammar.y"
+#line 1272 "grammar.y"
     {
             list_cmd(-1,NULL,"// ",TRUE);
@@ -3838,5 +3840,5 @@
 
 /* Line 1464 of yacc.c  */
-#line 1276 "grammar.y"
+#line 1278 "grammar.y"
     { yyInRingConstruction = TRUE; ;}
     break;
@@ -3845,5 +3847,5 @@
 
 /* Line 1464 of yacc.c  */
-#line 1285 "grammar.y"
+#line 1287 "grammar.y"
     {
             const char *ring_name = (yyvsp[(2) - (8)].lv).name;
@@ -3883,5 +3885,5 @@
 
 /* Line 1464 of yacc.c  */
-#line 1318 "grammar.y"
+#line 1320 "grammar.y"
     {
             const char *ring_name = (yyvsp[(2) - (2)].lv).name;
@@ -3895,5 +3897,5 @@
 
 /* Line 1464 of yacc.c  */
-#line 1325 "grammar.y"
+#line 1327 "grammar.y"
     {
             yyInRingConstruction = FALSE;
@@ -3905,5 +3907,5 @@
 
 /* Line 1464 of yacc.c  */
-#line 1330 "grammar.y"
+#line 1332 "grammar.y"
     {
           yyInRingConstruction = FALSE;
@@ -3920,5 +3922,5 @@
 
 /* Line 1464 of yacc.c  */
-#line 1343 "grammar.y"
+#line 1345 "grammar.y"
     {
             if (((yyvsp[(1) - (2)].i)!=LIB_CMD)||(jjLOAD((yyvsp[(2) - (2)].name),TRUE))) YYERROR;
@@ -3929,5 +3931,5 @@
 
 /* Line 1464 of yacc.c  */
-#line 1352 "grammar.y"
+#line 1354 "grammar.y"
     {
             if (((yyvsp[(1) - (2)].i)==KEEPRING_CMD) && (myynest==0))
@@ -3999,5 +4001,5 @@
 
 /* Line 1464 of yacc.c  */
-#line 1420 "grammar.y"
+#line 1422 "grammar.y"
     {
             type_cmd(&((yyvsp[(2) - (2)].lv)));
@@ -4008,5 +4010,5 @@
 
 /* Line 1464 of yacc.c  */
-#line 1424 "grammar.y"
+#line 1426 "grammar.y"
     {
             //Print("typ is %d, rtyp:%d\n",$1.Typ(),$1.rtyp);
@@ -4036,5 +4038,5 @@
 
 /* Line 1464 of yacc.c  */
-#line 1453 "grammar.y"
+#line 1455 "grammar.y"
     {
             int i; TESTSETINT((yyvsp[(3) - (5)].lv),i);
@@ -4054,5 +4056,5 @@
 
 /* Line 1464 of yacc.c  */
-#line 1466 "grammar.y"
+#line 1468 "grammar.y"
     {
             if (currentVoice->ifsw==1)
@@ -4076,5 +4078,5 @@
 
 /* Line 1464 of yacc.c  */
-#line 1483 "grammar.y"
+#line 1485 "grammar.y"
     {
             int i; TESTSETINT((yyvsp[(3) - (5)].lv),i);
@@ -4090,5 +4092,5 @@
 
 /* Line 1464 of yacc.c  */
-#line 1492 "grammar.y"
+#line 1494 "grammar.y"
     {
             if (exitBuffer(BT_break)) YYERROR;
@@ -4100,5 +4102,5 @@
 
 /* Line 1464 of yacc.c  */
-#line 1497 "grammar.y"
+#line 1499 "grammar.y"
     {
             if (contBuffer(BT_break)) YYERROR;
@@ -4110,5 +4112,5 @@
 
 /* Line 1464 of yacc.c  */
-#line 1505 "grammar.y"
+#line 1507 "grammar.y"
     {
             /* -> if(!$2) break; $3; continue;*/
@@ -4124,5 +4126,5 @@
 
 /* Line 1464 of yacc.c  */
-#line 1517 "grammar.y"
+#line 1519 "grammar.y"
     {
             /* $2 */
@@ -4145,5 +4147,5 @@
 
 /* Line 1464 of yacc.c  */
-#line 1536 "grammar.y"
+#line 1538 "grammar.y"
     {
             idhdl h = enterid((yyvsp[(2) - (3)].name),myynest,PROC_CMD,&IDROOT,TRUE);
@@ -4160,5 +4162,5 @@
 
 /* Line 1464 of yacc.c  */
-#line 1546 "grammar.y"
+#line 1548 "grammar.y"
     {
             idhdl h = enterid((yyvsp[(1) - (3)].name),myynest,PROC_CMD,&IDROOT,TRUE);
@@ -4184,5 +4186,5 @@
 
 /* Line 1464 of yacc.c  */
-#line 1565 "grammar.y"
+#line 1567 "grammar.y"
     {
             omFree((ADDRESS)(yyvsp[(3) - (4)].name));
@@ -4209,5 +4211,5 @@
 
 /* Line 1464 of yacc.c  */
-#line 1588 "grammar.y"
+#line 1590 "grammar.y"
     {
             // decl. of type proc p(int i)
@@ -4220,5 +4222,5 @@
 
 /* Line 1464 of yacc.c  */
-#line 1594 "grammar.y"
+#line 1596 "grammar.y"
     {
             // decl. of type proc p(i)
@@ -4234,5 +4236,5 @@
 
 /* Line 1464 of yacc.c  */
-#line 1606 "grammar.y"
+#line 1608 "grammar.y"
     {
             iiRETURNEXPR.Copy(&(yyvsp[(3) - (4)].lv));
@@ -4245,5 +4247,5 @@
 
 /* Line 1464 of yacc.c  */
-#line 1612 "grammar.y"
+#line 1614 "grammar.y"
     {
             if ((yyvsp[(1) - (3)].i)==RETURN)
@@ -4259,5 +4261,5 @@
 
 /* Line 1464 of yacc.c  */
-#line 4260 "grammar.cc"
+#line 4262 "grammar.cc"
       default: break;
     }
Index: Singular/grammar.y
===================================================================
--- Singular/grammar.y	(revision 9dbae536bb30691a749ee73d6d55dda411348cdd)
+++ Singular/grammar.y	(revision 7647014cff9c8ca00602981c4101699a8d02c1fd)
@@ -1158,4 +1158,5 @@
             {
                Werror("`%s` is undefined in kill",v->name);
+	       omFree((ADDRESS)v->name); v->name=NULL;
             }
             else               WerrorS("kill what ?");
@@ -1174,4 +1175,5 @@
             {
                Werror("`%s` is undefined in kill",v->name);
+	       omFree((ADDRESS)v->name); v->name=NULL;
             }
             else               WerrorS("kill what ?");
