anchor.diff:      From = normalize_pidinfo(FromPid),
       To = normalize_pidinfo(ToPid),
       Now = os:timestamp(),
  +    MsgMapFun = passed_state_msg_map_fun(PState),
       case  passed_state_logger(PState) of
           io_format ->
               io:format("~p recv ~.0p -> ~.0p:~n  ~.0p.~n",
  -                      [util:readable_utc_time(Now), From, To, Msg]);
  +                      [util:readable_utc_time(Now), From, To, MsgMapFun(Msg)]);
           {log_collector, LoggerPid} ->
               TraceId = passed_state_trace_id(PState),
  -            send_log_msg(LoggerPid, {log_recv, Now, TraceId, From, To, Msg})
  +            send_log_msg(LoggerPid, {log_recv, Now, TraceId, From, To, MsgMapFun(Msg)})
       end,
       ok.
   
  
positive.code:                          Source::pidinfo(), Dest::pidinfo(), comm:message()}.
  -type trace_event()  :: send_event() | info_event() | recv_event().
  -type trace()        :: [trace_event()].
  -type passed_state() :: {trace_id(), logger()}.
  -type gc_mpath_msg() :: {'$gen_component', trace_mpath, passed_state(),
                           Source::pidinfo(), Dest::pidinfo(), comm:message()}.
  
  
negative.code: start() -> start(default).
  
  -spec start(trace_id() | passed_state()) -> ok.
  start(TraceId) when is_atom(TraceId) ->
      LoggerPid = pid_groups:find_a(trace_mpath),
      start(TraceId, comm:make_global(LoggerPid), fun(Msg) -> Msg end);
  start(PState) when is_tuple(PState) ->
      start(passed_state_trace_id(PState), 
            passed_state_logger(PState),
            passed_state_msg_map_fun(PState)).
  
  -spec start(trace_id(), logger() | comm:mypid() | msg_map_fun()) -> ok.
  start(TraceId, MsgMapFun) when is_function(MsgMapFun) ->
      LoggerPid = pid_groups:find_a(trace_mpath),    
      start(TraceId, comm:make_global(LoggerPid), MsgMapFun);
  start(TraceId, Logger) ->
      start(TraceId, Logger, fun(Msg) -> Msg end).
  
  -spec start(trace_id(), logger() | comm:mypid(), msg_map_fun()) -> ok.
  start(TraceId, _Logger, MsgMapFun) ->
      Logger = case comm:is_valid(_Logger) of
                   true -> {log_collector, _Logger}; %% just a pid was given                     
                   false -> _Logger
               end,
      PState = passed_state_new(TraceId, Logger, MsgMapFun),
      own_passed_state_put(PState).
  
  -spec stop() -> ok.
  stop() ->
  