anchor.diff:                fun ({N, State}) ->
                         ns_memcached:set_vbucket_state(N, Bucket, VBucket, dead),
                         case {HaveAllCopies, State} of
  -                          {true, _} ->
  +                          {_, S} when S /= dead ->
  +                              ?log_info("Setting vbucket ~p on ~p from ~p to"
  +                                        " dead.", [VBucket, N, S]),
  +                              ns_memcached:set_vbucket_state(
  +                                N, Bucket, VBucket, dead);
  +                          {true, dead} ->
  +                              ?log_info("Deleting vbucket ~p on ~p",
  +                                        [VBucket, N]),
                                 ns_memcached:delete_vbucket(N, Bucket, VBucket);
                             {false, dead} ->
  -                              ok;
  -                          {false, _} ->
  -                              ns_memcached:set_vbucket_state(
  -                                N, Bucket, VBucket, dead)
  +                              ok
                         end
                 end, ExtraStates),
               Chain;
  
positive.code:                           true->
                                ok;
                            false ->
                                ns_vbm_sup:kill_children(M, Bucket, [VBucket])
                        end
                end, misc:pairs(C)),
  
negative.code:             case [N || {N, active} <- ReplicaStates ++ ExtraStates] of
                  [] ->
                      %% We'll let the next pass catch the replicas.
                      ?log_info("Setting vbucket ~p on ~p to active.",
                                [VBucket, Master]),
                      ns_memcached:set_vbucket_state(Master, Bucket, VBucket, active),
                      Chain;
                  [Node] ->
  