anchor.diff:          _ ->
               ?TRACE("[ ~.0p ]~n  ignoring join_request from ~.0p due to a running slide~n",
                      [self(), NewPred]),
  +            ?TRACE_SEND(node:pidX(NewPred), {join, join_response, busy, CandId}),
  +            comm:send(node:pidX(NewPred), {join, join_response, busy, CandId}),
               State
       end;
   %% userdevguide-end dht_node_join:join_request1
  
positive.code:     State;
  
  %% userdevguide-begin dht_node_join:join_other_p4
  process_join_state({join, join_response, not_responsible, CandId} = _Msg,
                     {join, JoinState, QueuedMessages} = State)
    when element(1, JoinState) =:= phase4 ->
      ?TRACE_JOIN1(_Msg, JoinState),
      % the node we contacted is not responsible for the selected key anymore
      % -> try the next candidate, if the message is related to the current candidate
  
negative.code:     State;
  process_join_msg({join, join_response, _Succ, _Pred, _MoveFullId, _CandId} = _Msg, State) ->
      State;
  process_join_msg({join, join_response, Reason, _CandId} = _Msg, State)
    when (Reason =:= not_responsible orelse Reason =:= busy) ->
      State;
  process_join_msg({join, lookup_timeout, _Conn, _Id, _JoinId} = _Msg, State) ->
      State;
  