anchor.diff:                    ?unique(Logger, ?ltip, Msg, []),
                     {From, Reply};
                   Else ->
  -                  throw({unknown_protocol_for_system, Else})
  +                  throw({unknown_protocol_for_system, {Else, Data}})
                 end,
               Report ! {system_reply, F, Id, R, Name},
               ok
             catch
               no_reply -> send_message_ack(Report, false, false, false);
  -            {unknown_protocol_for_system, _} = Reason -> ?crash(Reason);
  +            Reason -> ?crash(Reason);
               Class:Reason ->
                 Stacktrace = erlang:get_stacktrace(),
                 ?crash({system_wrapper_error, Name, Class, Reason, Stacktrace})
  
positive.code:     "data that may differ on separate runs of the program.~n"
      "Location: ~p~n",
      [Module, Name, Arity, Args, M, F, length(OArgs), OArgs, Location]);
  explain_error({unknown_protocol_for_system, System}) ->
    io_lib:format(
      "A process tried to send a message to system process ~p. Concuerror does"
      " not currently support communication with this process. Please contact the"
      " developers for more information.",[System]);
  explain_error({unknown_built_in, {Module, Name, Arity, Location, Stack}}) ->
    LocationString =
      case Location of
  
negative.code:     [Module, Name, Arity, LocationString, Stack]);
  explain_error({unsupported_request, Name, Type}) ->
    io_lib:format(
      "A process send a request of type '~w' to ~p. Concuerror does not yet support"
      " this type of request to this process.",
      [Type, Name]);
  explain_error({wrapper_asked_for_status, Name}) ->
    io_lib:format(
  