anchor.diff:  	    ReplyTo ! {done, self(), Res, Time}
       catch
   	error:undef ->
  +	    %% p("do_eval -> error - undef", []),
   	    ReplyTo ! {'EXIT', self(), undef, 0};
   	exit:{skipped, Reason} ->
  +	    %% p("do_eval -> exit - skipped"
  +	    %%   "~n   Reason: ~p", [Reason]),
   	    T2   = os:timestamp(), 
   	    Time = timer:now_diff(T2, T1), 
   	    display_tc_time(Time),
   	    display_system_info("after (skipped)", Mod, Fun),
  -	    ReplyTo ! {'EXIT', self(), {skipped, Reason}, Time}
  +	    ReplyTo ! {'EXIT', self(), {skipped, Reason}, Time};
  +	exit:{suite_failed, Reason} ->
  +	    %% p("do_eval -> exit - suite-failed"
  +	    %%   "~n   Reason: ~p", [Reason]),
  +	    T2   = os:timestamp(), 
  +	    Time = timer:now_diff(T2, T1), 
  +	    display_tc_time(Time),
  +	    display_system_info("after (failed)", Mod, Fun),
  +	    ReplyTo ! {done, self(), Reason, Time}
   
       end,
       unlink(ReplyTo),
  
positive.code: wait_for_evaluator(Pid, Mod, Fun, Config, Errors) ->
      wait_for_evaluator(Pid, Mod, Fun, Config, Errors, 0).
  wait_for_evaluator(Pid, Mod, Fun, Config, Errors, AccTime) ->
      TestCase = {?MODULE, Mod, Fun},
      Label = lists:concat(["TEST CASE: ", Fun]),
      receive
  
negative.code:     end.
  
  do_eval(ReplyTo, Mod, Fun, Config) ->
      %% p("do_eval -> "
      %%   "~n   ReplyTo: ~p"
      %%   "~n   Mod:     ~p"
      %%   "~n   Fun:     ~p"
      %%   "~n   Config:  ~p", [ReplyTo, Mod, Fun, Config]),
      display_system_info("before", Mod, Fun),
      T1 = os:timestamp(), 
      try Mod:Fun(Config) of
  	Res ->
  	    p("do_eval -> done"
  	      "~n   Res: ~p", [Res]),
  	    T2   = os:timestamp(), 
  	    Time = timer:now_diff(T2, T1), 
  	    display_tc_time(Time),
  