anchor.diff:  init(Ensemble, Id, []) ->
       {{kv, _PL, _N, Idx}, _} = Id,
       Proxy = riak_core_vnode_proxy:reg_name(riak_kv_vnode, Idx),
  +    ProxyRef = erlang:monitor(process, Proxy),
  +    {ok, Vnode} = riak_core_vnode_manager:get_vnode_pid(Idx, riak_kv_vnode),
  +    VnodeRef = erlang:monitor(process, Vnode),
       #state{ensemble=Ensemble,
              id=Id,
  -           proxy=Proxy}.
  +           proxy=Proxy,
  +           proxy_ref=ProxyRef,
  +           vnode_ref=VnodeRef}.
   
   %%===================================================================
   
  
positive.code: 
  %%===================================================================
  
  -spec tick(epoch(), seq(), peer_id(), views(), state()) -> state().
  tick(_Epoch, _Seq, _Leader, Views, State=#state{id=Id}) ->
      %% TODO: Should this entire function be async?
  
negative.code:     Peers0 = [{Idx, PeerId} || {PeerId={{kv,_PL,_N,Idx},_Node},_Reply} <- Replies],
      Peers = orddict:from_list(Peers0),
      {{kv, PL, N, Idx}, _} = Id,
      IndexN = {PL,N},
      %% Sort to remove duplicates when changing ownership / forwarded response
      Siblings0 = lists:usort([I || {{{kv,_PL,_N,I},_Node},_Reply} <- Replies]),
      %% Just in case, remove self from list
  