anchor.diff:  %% -------------------------------------------------------------------------
   call_init(Mod, Config, Meta) when is_atom(Mod) ->
       call_init({Mod, []}, Config, Meta);
  -call_init({Mod, State}, Config, _) ->
  +call_init({Mod, State}, Config, Scope) ->
       {Id, NewState} = Mod:init(State),
  -    {Config, {Id, {Mod, NewState}}}.
  +    {Config, {Id, scope(Scope), {Mod, NewState}}}.
   	
   call_terminate({Mod, State}, _, _) ->
       catch_apply(Mod,terminate,[State], ok),
  
positive.code: -spec terminate(Callbacks :: term()) ->
      ok.
  terminate(Callbacks) ->
      call([{CBId, fun call_terminate/3} || {CBId,_} <- Callbacks],
  	 ct_suite_callback_init_dummy, undefined, Callbacks),
      ok.
  
  %% @doc Called as each test case is started. This includes all configuration
  
negative.code:     end;
  call([{CBId, Fun} | Rest], Config, Meta, CBs) ->
      try
          {_,Scope,ModState} = lists:keyfind(CBId, 1, CBs),
          {NewConf, NewCBInfo} =  Fun(ModState, Config, Meta),
          NewCalls = get_new_callbacks(NewConf, Fun),
          NewCBs = lists:keyreplace(CBId, 1, CBs, {CBId, Scope, NewCBInfo}),
          call(NewCalls  ++ Rest, remove(?config_name, NewConf), Meta,
               terminate_if_scope_ends(CBId, Meta, NewCBs))
      catch throw:{error_in_scb_call,Reason} ->
              call(Rest, {fail, Reason}, Meta,
                   terminate_if_scope_ends(CBId, Meta, CBs))
      end;
  call([], Config, _Meta, CBs) ->
      save_suite_data_async(CBs),
      Config.
  
  remove(Key,List) when is_list(List) ->
  