anchor.diff:                      % can't do lookup here but we are already waiting for a
                       % join_response -> for now, try to get contact nodes
                       % (may be useful for a lookup in a later step)
  -                    get_known_nodes(),
  +                    get_known_nodes(get_join_uuid(JoinState)),
                       JoinState;
                   phase2 ->
                       % do not immediately re-issue a request for known nodes
  
positive.code:         [] -> % no candidates -> should not happen in phase4!
              log:log(error, "[ Node ~w ] empty candidate list in join phase 4, "
                          "starting over", [self()]),
              {join, start_over(JoinState), QueuedMessages};
          [Candidate | _Rest] ->
              case lb_op:get(Candidate, id) =:= CandId of
                  false -> State; % unrelated/old message
  
negative.code:                              null -> JoinState1;
                               _    -> add_connections([Conn], JoinState1, back)
                           end,
              NewConns =
                  [begin
                       NewConn = new_connection(Conn),
                       Msg = {lookup_aux, Id, 0,
                              {join, get_candidate, comm:this(), Id, MyLbPsv, NewConn}},
                       ?TRACE_SEND(Node, Msg),
                       comm:send(Node, Msg),
                       msg_delay:send_local(
                         get_lookup_timeout() div 1000, self(),
                         {join, lookup_timeout, NewConn, get_join_uuid(JoinState2)}),
                       NewConn                     
                   end
                   || Id <- JoinIds],
              JoinState3 = add_connections(NewConns, JoinState2, back),
              case Phase of
                  phase4 -> JoinState3;
  