Index: parse_y.c =================================================================== --- parse_y.c (revision 33350) +++ parse_y.c (revision 33351) @@ -2936,7 +2936,7 @@ else pcb_attribute_put(attr_list, key, val); free(key); - free(val); + if ((yyvsp[-1].string) != NULL) free(val); } #line 2942 "parse_y.c" /* yacc.c:1652 */ break; Index: parse_y.y =================================================================== --- parse_y.y (revision 33350) +++ parse_y.y (revision 33351) @@ -1327,7 +1327,7 @@ else pcb_attribute_put(attr_list, key, val); free(key); - free(val); + if ($4 != NULL) free(val); } ;