anchor.diff:  
   replace_expr_with_fun_call(Form, ExpList, NewFunName, ParNames, VarsToExport) ->
       Op = refac_syntax:atom(NewFunName),
  -    Pars = [refac_syntax:variable(P)|| P <-ParNames],
  -    FunCall= refac_syntax:copy_pos(hd(ExpList), refac_syntax:application(Op, Pars)),
  -    NewExpr = case length(VarsToExport) of 
  -		  0  ->  
  -		      FunCall;
  -		  1 -> 
  -		      Pats = refac_syntax:variable(hd(VarsToExport)),
  -		      refac_syntax:match_expr(Pats, FunCall);
  -		  _ ->
  -		      Pats = refac_syntax:tuple([refac_syntax:variable(V) || V <- VarsToExport]),
  -		      refac_syntax:match_expr(Pats, FunCall)
  +    Pars = [refac_syntax:variable(P) || P <- ParNames],
  +    FunCall = refac_syntax:copy_pos(hd(ExpList), refac_syntax:application(Op, Pars)),
  +    NewExpr = case length(VarsToExport) of
  +		0 ->
  +		    FunCall;
  +		1 ->
  +		    Pats = refac_syntax:variable(hd(VarsToExport)),
  +		    refac_syntax:match_expr(Pats, FunCall);
  +		_ ->
  +		    Pats = refac_syntax:tuple([refac_syntax:variable(V) || V <- VarsToExport]),
  +		    refac_syntax:match_expr(Pats, FunCall)
   	      end,
  -    case (length(ExpList)==1) andalso (refac_syntax:type(hd(ExpList))=/=match_expr) of
  -	true -> 
  -	    {Form1, _} =refac_util:stop_tdTP(
  -			  fun do_replace_expr_with_fun_call_1/2, Form, {NewExpr, hd(ExpList)}),
  -	    Form1;
  -	_ ->
  -	    {Form1, _} =refac_util:stop_tdTP(
  -			  fun do_replace_expr_with_fun_call_2/2, Form, {NewExpr, ExpList}),
  -	    Form1
  +    case length(ExpList) == 1 andalso refac_syntax:type(hd(ExpList)) =/= match_expr of
  +      true ->
  +	  {Form1, _} = refac_util:stop_tdTP(
  +			 fun do_replace_expr_with_fun_call_1/2, Form, {NewExpr, hd(ExpList)}),
  +	  Form1;
  +      _ ->
  +	  {Form1, _} = refac_util:stop_tdTP(
  +			 fun do_replace_expr_with_fun_call_2/2, Form, {NewExpr, ExpList}),
  +	  Form1
       end.
       
   do_replace_expr_with_fun_call_1(Tree, {NewExpr, Expr}) ->
  
positive.code: 	[] -> ExpList = [],
  	      throw({error, "You have not selected an expression or a sequence of expressions, "
  		     "or the function containing the expression(s) selected is malformed."});
  	ExpList -> ExpList
      end,
      {ok, Fun} = refac_util:expr_to_fun(AnnAST, hd(ExpList)),
      ok=side_cond_analysis(FileName, Info, Fun, ExpList, list_to_atom(NewFunName)),
  
negative.code: 	end,
      refac_syntax_lib:fold(F, [], Tree).
  
  
  %% This function is a duplicated of refac_gen:collect_guard_ranges/1, and 
  %% will be removed later on.
  collect_guard_ranges(Node) ->
      Fun=fun(T, Acc) ->
  		case refac_syntax:type(T) of
  		    clause ->
  			G = refac_syntax:clause_guard(T),
  			case G of 
  			    none ->
  				Acc;
  			    _ -> 
  				[refac_util:get_range(G)|Acc]
  			end;
  		    _ ->Acc
  		end
  	end,
      refac_syntax_lib:fold(Fun, [], Node).
    	
  
  collect_macro_arg_ranges(Node) ->	
      Fun = fun(T, Acc) ->
  		  case refac_syntax:type(T) of 
  		      macro ->
  			  Args = refac_syntax:macro_arguments(T),
  			  case Args of 
  			      none -> Acc;
  			      _ -> 
  				  [refac_util:get_range(A)||A<-Args]++Acc
  			  end;
  		      _ -> Acc
  		  end
  	  end,
      refac_syntax_lib:fold(Fun, [], Node).
  
  is_guard_expr(Node) ->
      As = refac_syntax:get_ann(Node),
  