anchor.diff:      R = case S#state.round of
           0 ->
               {ok, NS} = advance_optimistic_unchoke(S),
  -            rechoke(NS),
  +            rechoke(NS#state.opt_unchoke_chain),
               {noreply, NS#state { round = 2}};
           N when is_integer(N) ->
  -            rechoke(S),
  +            rechoke(S#state.opt_unchoke_chain),
               {noreply, S#state{round = S#state.round - 1}}
       end,
       erlang:send_after(?ROUND_TIME, self(), round_tick),
  
positive.code:     % The peer shut down unexpectedly re-add him to the queue in the *back*
      case etorrent_table:get_peer_info(Pid) of
  	not_found -> ok;
  	_ -> ok = rechoke(S)
      end,
  
      NewChain = lists:delete(Pid, S#state.opt_unchoke_chain),
  
negative.code:     ?ERR([unknown_peer_group_call, Request]),
      Reply = ok,
      {reply, Reply, State}.
  handle_cast(rechoke, #state { opt_unchoke_chain = Chain } = S) ->
      rechoke(Chain),
      {noreply, S};
  handle_cast(_Msg, State) ->
      {noreply, State}.
  