anchor.diff:  	    check_uses(Rest, Anc, U, Lm)
       end.
       
  -get_macro_uses(M, U) ->
  +get_macro_uses({M,Arity}, U) ->
       case dict:find(M, U) of
   	error ->
   	    [];
   	{ok, L} ->
  -	    L
  -    end.
  +	    proplists:get_value(Arity, L, proplists:get_value(none, L, []))
  +    end.
  +
   
   %% Macro expansio
  -expand_macros([{'?',_Lq},{atom,Lm,M}|Toks], Ms) ->
  -    expand_macros(atom, Lm, M, Toks, Ms);
  +expand_macros([{'?',_Lq},{atom,_Lm,M}=MacT|Toks], Ms) ->
  +    expand_macros(atom, MacT, M, Toks, Ms);
   %% Special macros
   expand_macros([{'?',_Lq},{var,Lm,'LINE'}|Toks], Ms) ->
       [{integer,Lm,Lm}|expand_macros(Toks, Ms)];
  -expand_macros([{'?',_Lq},{var,Lm,M}|Toks], Ms) ->
  -    expand_macros(atom, Lm, M, Toks, Ms);
  +expand_macros([{'?',_Lq},{var,_Lm,M}=MacT|Toks], Ms) ->
  +    expand_macros(atom, MacT, M, Toks, Ms);
   %%Illegal macros
   expand_macros([{'?',_Lq},{Type,Lt}|_Toks], _Ms) ->
        throw({error,Lt,{call,[$?|atom_to_list(Type)]}});
  
positive.code:     macro_arg(Toks, ['end'|E], [{'if',Li}|Arg]);
  macro_arg([{'case',Lc}|Toks], E, Arg) ->
      macro_arg(Toks, ['end'|E], [{'case',Lc}|Arg]);
  macro_arg([{'receive',Lr}|Toks], E, Arg) ->
      macro_arg(Toks, ['end'|E], [{'receive',Lr}|Arg]);
  macro_arg([{'try',Lr}|Toks], E, Arg) ->
      macro_arg(Toks, ['end'|E], [{'try',Lr}|Arg]);
  macro_arg([{'cond',Lr}|Toks], E, Arg) ->
      macro_arg(Toks, ['end'|E], [{'cond',Lr}|Arg]);
  macro_arg([{Rb,Lrb}|Toks], [Rb|E], Arg) ->	%Found matching close
      macro_arg(Toks, E, [{Rb,Lrb}|Arg]);
  macro_arg([T|Toks], E, Arg) ->
  
negative.code: %%  Add the predefined macros to the macros dictionary. A macro without a
  %%  value gets the value 'true'.
  
  user_predef([{M,Val,redefine}|Pdm], Ms) when is_atom(M) ->
      Exp = refac_parse:tokens(refac_parse:abstract(Val)),
      user_predef(Pdm, dict:store({atom,M}, {none,Exp}, Ms));
  user_predef([{M,Val}|Pdm], Ms) when is_atom(M) ->
      case dict:find({atom,M}, Ms) of
  	{ok,_Defs} when is_list(_Defs) -> %% User defined macros
  	    {error,{redefine,M}};
  	{ok,_Def} -> %% Predefined macros
  	    {error,{redefine_predef,M}};
  	error ->
  	    Exp = refac_parse:tokens(refac_parse:abstract(Val)),
  	    user_predef(Pdm, dict:store({atom,M}, [{none, {none,Exp}}], Ms))
      end;
  user_predef([M|Pdm], Ms) when is_atom(M) ->
      case dict:find({atom,M}, Ms) of
  	{ok,_Defs} when is_list(_Defs) -> %% User defined macros
  	    {error,{redefine,M}};
  	{ok,_Def} -> %% Predefined macros
  	    {error,{redefine_predef,M}};
  	error ->
  	    user_predef(Pdm,
  	                dict:store({atom,M}, [{none, {none,[{atom,1,true}]}}], Ms))
      end;
  user_predef([Md|_Pdm], _Ms) -> {error,{bad,Md}};
  user_predef([], Ms) -> {ok,Ms}.
  
  
  wait_request(St) ->
      receive
  