anchor.diff:      case epp:open(Name, []) of
   	{ok,Epp} ->
   	    %% These are two undocumented functions of epp.
  -	    Fs = epp:parse_file(Epp),
  -	    Ms = epp:macro_defs(Epp),
  +	    Fs = epp:parse_file(Epp),		%This must be called first
  +	    Ms = epp:macro_defs(Epp),		% then this!
   	    epp:close(Epp),			%Now we close epp
   	    parse_hrl_file(Fs, Ms, St);
   	{error,E} -> {error,E}
  
positive.code: record_fields(Fs) ->
      [ record_field(F) || F <- Fs ].
  
  record_field({record_field,_,F}) ->
      lfe_trans:from_lit(F);
  record_field({record_field,_,F,Def}) ->
      Fd = lfe_trans:from_lit(F),
      Ld = lfe_trans:from_expr(Def),
      [Fd,Ld].
  
  trans_macros([{_,undefined}|Ms]) ->		%Skip undefined macros
      trans_macros(Ms);
  trans_macros([{{atom,Mac},{none,_}}|Ms]) ->	%Skip predefined macros
      trans_macros(Ms);
  trans_macros([{{atom,Mac},Defs}|Ms]) ->
      case trans_macro_defs(Defs) of
  	[] -> trans_macros(Ms);
  	Lcls -> [[defmacro,Mac|Lcls]|trans_macros(Ms)]
      end;
  %% trans_macros([{{atom,Mac},Defs}|Ms]) ->
  %%     Mdef = trans_macro(Mac, Def),
  %%     [Mdef|trans_macros(Ms)];
  trans_macros([]) -> [].
  
  %% trans_macro(Mac, {none,Ts}) ->			%Predefined macros
  %%     [defmacro,Mac,[]|trans_macro_body([], Ts)];
  trans_macro(Mac, Defs) ->
      case trans_macro_defs(Defs) of
  	[] -> [progn];
  	Lcls -> [defmacro,Mac|Lcls]
      end.
  
  trans_macro_defs([{none,Ds}|Defs]) ->		%Put the no arg version last
      trans_macro_defs_1(Defs ++ [{none,Ds}]);
  
negative.code:     Fs1 = trans_forms(Fs0),
      Ms1 = trans_macros(Ms0),
      {ok,Fs1 ++ Ms1,St}.
  
  %% trans_forms(Forms) -> Forms.
  %%  Translate the record defintions in the forms to LFE record
  %%  definitions. Ignore all type declarations and other forms.
  
  trans_forms([{attribute,_,record,{Name,Fields}}|Fs]) ->
      Rs = record_fields(Fields),
  