anchor.diff:      end;
   
   handle_message({neighbor, Peer, TheirTag, DisconnectId, _Sender},
  -               #state{sent_message_map=SentMessageMap}=State0) ->
  +               #state{myself=Myself,
  +                      connections=Connections,
  +                      epoch=Epoch,
  +                      sent_message_map=SentMessageMap0}=State0) ->
       lager:info("Neighboring with ~p tagged ~p from random walk", [Peer, TheirTag]),
   
  -    State = case is_addable(DisconnectId, Peer, SentMessageMap) of
  +    State = case is_addable(DisconnectId, Peer, SentMessageMap0) of
                   true ->
                       %% Add node into the active view.
                       add_to_active_view(Peer, TheirTag, State0);
                   false ->
  -                    %% @todo Need to send the disconnect message here?
  -                    State0
  +                    %% Get next disconnect id for the peer.
  +                    NextId = get_next_id(Peer, Epoch, SentMessageMap0),
  +                    %% Update the SentMessageMap.
  +                    SentMessageMap = dict:store(Peer, NextId, SentMessageMap0),
  +
  +                    %% Let peer know we did not add them into the active view.
  +                    do_send_message(Peer,
  +                                    {disconnect, Myself, NextId},
  +                                    Connections),
  +
  +                    State0#state{sent_message_map=SentMessageMap}
               end,
   
       %% Notify with event.
  
positive.code:             %% No more peers are suspected; no change.
              State0;
          Random ->
              case is_addable(DisconnectId, Peer, SentMessageMap) of
                  true ->
                      %% Remove from suspected.
                      Suspected = remove_from_suspected(Random, Suspected0),
  
negative.code:                     %% Add to active view.
                      add_to_active_view(Peer, Tag, State1);
                  false ->
                      %% Get next disconnect id for the peer.
                      NextId = get_next_id(Peer, Epoch, SentMessageMap0),
                      %% Update the SentMessageMap.
                      SentMessageMap = dict:store(Peer, NextId, SentMessageMap0),
  
                      %% Let peer know we did not add them into the active view.
                      do_send_message(Peer,
                                      {disconnect, Myself, NextId},
                                      Connections),
  
                      State0#state{sent_message_map=SentMessageMap}
              end
      end,
  
  