anchor.diff:                  true -> loop(UState, bp_step_done(Msg, T1GCState))
               end;
           NewUState ->
  -            case element(?BP_ACTIVE, T1GCState) andalso gc_bpstepped(T1GCState) of
  +            case gc_bpactive(T1GCState) andalso gc_bpstepped(T1GCState) of
                   false -> loop(NewUState, T1GCState);
                   true -> loop(NewUState, bp_step_done(Msg, T1GCState))
               end
  +    catch Level:Reason ->
  +              Stacktrace = erlang:get_stacktrace(),
  +              case Stacktrace of
  +                  %% erlang < R15 : {Module, Handler, [Msg, State]}
  +                  %% erlang >= R15: {Module, Handler, [Msg, State], _}
  +                  [T | _] when
  +                    erlang:element(1, T) =:= Module andalso
  +                        %% erlang:element(2, T) =:= Handler andalso
  +                        erlang:element(3, T) =:= [Msg, UState] andalso
  +                        Reason =:= function_clause andalso
  +                        Level =:= error ->
  +                      on_unknown_event(Msg, UState, T1GCState),
  +                      loop(UState, T1GCState);
  +                  _ ->
  +                      on_exception(Msg, Level, Reason, Stacktrace,
  +                                   UState, T1GCState),
  +                      loop(UState, T1GCState)
  +              end
       end.
   
   -spec on_traced_msg(comm:message(), user_state(), gc_state())
  
positive.code:                 false -> loop(NewUState, T1GCState);
                  true -> loop(NewUState, bp_step_done(Msg, T1GCState))
              end
      end.
  
  -spec on_unknown_event(comm:message(), user_state(), gc_state())
  
negative.code:                             erlang:throw('unknown gen_component command')
                      end
              end;
          unknown_event ->
              %% drop T2State, as it contains the error message
              on_unknown_event(Msg, UState, T1GCState),
  