anchor.diff:  			   end,
   			   [],
   			   FieldList0),
  -	    check_multi_field(RName,Line,KeyList,
  +	    check_multi_field(RName,Anno,KeyList,
   				 ?ERR_GENMULTIFIELD+B#tgd.eb),
  -	    check_undef_field(RName,Line,KeyList,FieldList0,
  +	    check_undef_field(RName,Anno,KeyList,FieldList0,
   			      ?ERR_GENBADFIELD+B#tgd.eb),
  -	    {tuple,Line,[{tuple,Line,[{atom,Line,RName}|FieldList1]}]};
  -	_ ->
  -	    throw({error,Line,{?ERR_GENBADREC+B#tgd.eb,RName}})
  -    end;
  -
  -tg({record_index,Line,RName,{atom,Line2,KeyName}},B) ->
  +	    {tuple,Anno,[{tuple,Anno,[{atom,Anno,RName}|FieldList1]}]};
  +	_ ->
  +	    throw({error,Anno,{?ERR_GENBADREC+B#tgd.eb,RName}})
  +    end;
  +
  +tg({record_index,Anno,RName,{atom,Anno2,KeyName}},B) ->
       RDefs = get_records(), 
       case lists:keysearch(RName,1,RDefs) of
   	{value, {RName, FieldList}} ->
   	    case lists:keysearch(KeyName,1, FieldList) of
   		{value, {KeyName,Position,_}} ->
  -		    {integer, Line2, Position};
  +		    {integer, Anno2, Position};
   		_ ->
  -		    throw({error,Line2,{?ERR_GENBADFIELD+B#tgd.eb, RName, 
  +		    throw({error,Anno2,{?ERR_GENBADFIELD+B#tgd.eb, RName,
   				       KeyName}})
   	    end;
   	_ ->
  -	    throw({error,Line,{?ERR_GENBADREC+B#tgd.eb,RName}})
  -    end;
  -
  -tg({record,Line,{var,Line2,_VName}=AVName, RName,RFields},B) ->
  +	    throw({error,Anno,{?ERR_GENBADREC+B#tgd.eb,RName}})
  +    end;
  +
  +tg({record,Anno,{var,Anno2,_VName}=AVName, RName,RFields},B) ->
       RDefs = get_records(),
       MSVName = tg(AVName,B),
       KeyList = lists:foldl(fun({record_field,_,{atom,_,Key},Value},
  
positive.code: fixup_environment(Other,_B) ->
      Other.
      
  freeze(Line,Term) ->
      {frozen,Line,Term}.
  
  %% Most of this is bluntly stolen from erl_parse.
  
  
negative.code: 					 NV = tg(Value,B),
  					 [{Key,NV}|L];
  				    (_,_) ->
  					 throw({error,Anno,?ERR_HEADBADREC})
  				 end,
  				 [],
  				 RFields),
  