anchor.diff:      DefaultIncl2 = [filename:join(Dir, X) || X <-DefaultIncl1],
       Includes = SearchPaths++DefaultIncl2,
      case refac_epp:parse_file(FName, Includes,[], TabWidth, FileFormat) of 
  -       {ok, Forms, _} -> Forms1 =  lists:filter(fun(F) ->
  +       {ok, Forms, Ms} -> Forms1 =  lists:filter(fun(F) ->
   							case F of 
   							    {attribute, _, file, _} -> false;
   							    {attribute, _, type, {{record, _}, _, _}} -> false;
  
positive.code:     filter_syntax_units(Res).
      
  
  -spec(pos_to_syntax_units(FileName::filename(), Tree::syntaxTree(),  Start::pos(), End::pos(), F::function(), TabWidth::integer()) ->
  	     [[syntaxTree()]]).
  pos_to_syntax_units(FileName, Tree, Start, End, F, TabWidth) ->
      Res = pos_to_syntax_units_1(Tree, Start, End, F),
      Res1 = filter_syntax_units(Res),
  
negative.code:       atom ->
  	  Lit = refac_syntax:atom_literal(Node),
  	  case hd(Lit) of
  	    39 -> Toks1 = lists:dropwhile(fun (T) -> token_loc(T) =< {L, C} end, Toks),
  		  case Toks1   %% this should not happen;
  		      of
  		    [] -> Len = length(atom_to_list(refac_syntax:atom_value(Node))),  %% This is problematic!!
  			  refac_syntax:add_ann({range, {{L, C}, {L, C + Len - 1}}}, Node);
  		    _ -> {L2, C2} = token_loc(hd(Toks1)),
  			 refac_syntax:add_ann({range, {{L, C}, {L2, C2 - 1}}}, Node)
  		  end;
  	    _ -> Len = length(atom_to_list(refac_syntax:atom_value(Node))),  %% This is problematic!!
  		 refac_syntax:add_ann({range, {{L, C}, {L, C + Len - 1}}}, Node)
  	  end;
        operator ->
  	  Len = length(atom_to_list(refac_syntax:atom_value(Node))),
  	  refac_syntax:add_ann({range, {{L, C}, {L, C + Len - 1}}}, Node);
        char -> refac_syntax:add_ann({range, {{L, C}, {L, C}}}, Node);
        integer ->
  	  Len = length(refac_syntax:integer_literal(Node)),
  	  refac_syntax:add_ann({range, {{L, C}, {L, C + Len - 1}}}, Node);
        string ->
  	  Toks1 = lists:dropwhile(fun (T) -> token_loc(T) < {L, C} end, Toks),
  	  {Toks21, Toks22} = lists:splitwith(fun (T) -> is_string(T) orelse is_whitespace_or_comment(T) end, Toks1),
  	  Toks3 = lists:filter(fun (T) -> is_string(T) end, Toks21),
  	  case Toks3 of
  	    [] ->  %% This should not happen.
  		Len = length(refac_syntax:string_literal(Node)),
  		refac_syntax:add_ann({range, {{L, C}, {L, C + Len - 1}}}, Node);
  	    _ -> Toks4 = lists:takewhile(fun (T) -> is_whitespace_or_comment(T) end, lists:reverse(Toks21)),
  		 {L3, C3} = case Toks4 of
  			      [] -> token_loc(hd(Toks22));
  			      _ -> token_loc(lists:last(Toks4))
  			    end,
  		 R = {token_loc(hd(Toks21)), {L3, C3 - 1}},
  		 Node1 = refac_syntax:add_ann({range, R}, Node),
  		 refac_syntax:add_ann({toks, Toks3}, Node1)
  	  end;
        float ->
  	  refac_syntax:add_ann({range, {{L, C}, {L, C}}}, Node); %% This is problematic.
        underscore -> refac_syntax:add_ann({range, {{L, C}, {L, C}}}, Node);
        eof_marker -> refac_syntax:add_ann({range, {{L, C}, {L, C}}}, Node);
        nil -> refac_syntax:add_ann({range, {{L, C}, {L, C + 1}}}, Node);
  