anchor.diff:  %%--------------------------------------------------------------------
   %%% Internal functions
   %%--------------------------------------------------------------------
  +pass_token(S) ->
  +    demonitor_process(S),
  +    case queue:out(S#state.pids) of
  +	{{value, Pid}, Q2} ->
  +	    etorrent_t_control:token(Pid),
  +	    Ref = erlang:monitor(process, Pid),
  +	    {reply, ok, running, S#state{ pids = Q2,
  +					  monitored = Ref}};
  +	{empty, Q} ->
  +	    {reply, ok, dormant, S#state{ pids = Q,
  +					  monitored = none}}
  +    end.
  +
  +demonitor_process(S) when S#state.monitored == none ->
  +    ok;
  +demonitor_process(S) ->
  +    true = erlang:demonitor(S#state.monitored),
  +    ok.
  
positive.code: %% other message than a synchronous or asynchronous event
  %% (or a system message).
  %%--------------------------------------------------------------------
  handle_info(_Info, StateName, State) ->
      {next_state, StateName, State}.
  
  
negative.code: -export([init/1, dormant/3, running/3, handle_event/3,
  	 handle_sync_event/4, handle_info/3, terminate/3, code_change/4]).
  
  -record(state, { pids = none,
  		 monitored = none}).
  -define(SERVER, ?MODULE).
  
  %%====================================================================
  