anchor.diff:  %%--------------------------------------------------------------------
   handle_info(timeout, S) ->
       case contact_tracker(S, S#state.queued_message) of
  -	{ok, Body} ->
  +	{ok, {{_, 200, _}, _, Body}} ->
   	    {ok, NextRequestTime, NS} =
   		handle_tracker_response(etorrent_bcoding:decode(Body), S),
   	    {noreply,
   	     NS#state{queued_message=none},
   	     timer:seconds(NextRequestTime)};
  -	timedout ->
  -	    {noreply, S, timer:seconds(?DEFAULT_CONNECTION_TIMEOUT_INTERVAL)}
  +	{error, timedout} ->
  +	    {noreply, S, timer:seconds(?DEFAULT_CONNECTION_TIMEOUT_INTERVAL)};
  +	{error, session_remotly_closed} ->
  +	    {noreply, S, timer:seconds(?DEFAULT_TRACKER_OVERLOAD_INTERVAL)}
       end;
   handle_info(_Info, State) ->
       {noreply, State}.
  
positive.code: %%--------------------------------------------------------------------
  contact_tracker(S, Event) ->
      NewUrl = build_tracker_url(S, Event),
      case http_gzip:request(NewUrl) of
  	{ok, {{_, 200, _}, _, Body}} ->
  	    {ok, Body};
  	{error, timedout} ->
  	    timedout
      end.
  
  handle_tracker_response(BC, S) ->
      ControlPid = S#state.control_pid,
  
negative.code: 
  -define(DEFAULT_REQUEST_TIMEOUT, 180).
  -define(DEFAULT_CONNECTION_TIMEOUT_INTERVAL, 1800).
  -define(DEFAULT_TRACKER_OVERLOAD_INTERVAL, 300).
  
  %%====================================================================
  %% API
  