anchor.diff:  
   user_callback(undefined, _, _, _, Args) ->
       Args;
  -user_callback({CBMod,CBFunc}, Mod, Func, InitOrEnd, [Args]) when is_list(Args) ->
  +user_callback({CBMod,CBFunc}, Mod, Func, InitOrEnd,
  +	      [Args]) when is_list(Args) ->
       case catch apply(CBMod, CBFunc, [InitOrEnd,Mod,Func,Args]) of
   	Args1 when is_list(Args1) ->
   	    [Args1];
  
positive.code: 		    {{0,NewRes},[{Mod,Func}],[]};
  		{ok,NewConf} ->
  		    %% call user callback function if defined
  		    NewConf1 = user_callback(TCCallback, Mod, Func, init, NewConf),
  		    %% save current state in controller loop
  		    set_tc_state(tc, NewConf1),
  		    %% execute the test case
  		    {{T,Return},Loc} = {ts_tc(Mod, Func, [NewConf1]),get_loc()},
  		    {EndConf,TSReturn,FWReturn} =
  			case Return of
  			    {E,TCError} when E=='EXIT' ; E==failed ->
  
negative.code:     ReturnTags = [skip,skip_and_save,save_config,comment,return_group_result],
      %% check if all elements in the list are valid end conf return value tuples
      case lists:all(fun(Val) when is_tuple(Val) ->
  			   lists:any(fun(T) -> T == element(1, Val) end,
  				     ReturnTags);
  		      (ok) ->
  			   true;
  		      (_) ->
  