anchor.diff:      {Config, {Id, {Mod, NewState}}}.
   	
   call_terminate({Mod, State}, _, _) ->
  -    Mod:terminate(State),
  +    catch_apply(Mod,terminate,[State], ok),
       {[],{Mod,State}}.
   
   call_generic({Mod, State}, Config, {Function, undefined}) ->
  
positive.code: catch_apply(M,F,A, Default) ->
      try
  	apply(M,F,A)
      catch error:undef ->
  	    case erlang:get_stacktrace() of
  		[{M,F,A}|_] ->
  		    Default;
  		_Else ->
  		    error(undef,[M,F,A])
  	    end
      end.
  
negative.code: -spec terminate(Callbacks :: term()) ->
      ok.
  terminate(Callbacks) ->
      call([{CBId, fun call_terminate/3} || {CBId,_} <- Callbacks],
  	 ct_suite_callback_init_dummy, undefined, Callbacks),
      ok.
  