anchor.diff:          {ok, undefined} ->
               %% Node was connected but is now disconnected.
               {error, disconnected};
  -        {ok, Pid} ->
  +        {ok, {Pid, _DisconnectTriggered}} ->
               gen_server:cast(Pid, {send_message, Message});
           error ->
               %% Node has not been connected yet.
  
positive.code: %% @private
  -spec terminate(term(), #state{}) -> term().
  terminate(_Reason, #state{connections=Connections}=_State) ->
      dict:map(fun(_K, Pid) ->
                       try
                           gen_server:stop(Pid, normal, infinity)
                       catch
                           _:_ ->
                               ok
                       end
               end, Connections),
      ok.
  
  
negative.code: %% @doc Handle disconnect messages.
  handle_cast({disconnect, Peer}, #state{active=Active0,
                                         connections=Connections0}=State0) ->
      DisconnectTriggered = get_disconnect_trigger(Peer, Connections0),
      case sets:is_element(Peer, Active0) andalso DisconnectTriggered of
          true ->
              %% If a member of the active view, remove it.
              Active = sets:del_element(Peer, Active0),
  