anchor.diff:                    dict:erase(Node, Acc)
             end, Statuses, ToRemove),
   
  -    {noreply, State#state{nodes=NewStatuses}};
  +    {noreply, State#state{nodes=NewStatuses,
  +                          nodes_wanted=NewNodes}};
   handle_info(Info, State) ->
       ?doctor_warning("Unexpected message ~p in state", [Info]),
       {noreply, State}.
  
positive.code:     {reply, Nodes1, State}.
  
  
  handle_cast({heartbeat, Name, Status}, State) ->
      Nodes = update_status(Name, Status, State#state.nodes),
      NewState0 = State#state{nodes=Nodes},
      NewState = maybe_refresh_tasks_version(NewState0),
      case NewState0#state.tasks_hash =/= NewState#state.tasks_hash of
          true ->
              gen_event:notify(buckets_events, {significant_buckets_change, Name});
          _ ->
              ok
      end,
      {noreply, NewState};
  
  handle_cast(Msg, State) ->
      ?doctor_warning("Unexpected cast: ~p", [Msg]),
  
negative.code:             timer2:send_interval(?LOG_INTERVAL, log);
          _ -> ok
      end,
      {ok, #state{nodes=dict:new(),
                  nodes_wanted=ns_node_disco:nodes_wanted()}}.
  
  handle_recovery_status_change(not_running, {running, _Bucket, _UUID}) ->
      {not_running, true};
  