anchor.diff:  %%--------------------------------------------------------------------
   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.
  +    http_gzip:request(NewUrl).
   
   handle_tracker_response(BC, S) ->
       ControlPid = S#state.control_pid,
  
positive.code: %%--------------------------------------------------------------------
  handle_cast(start_now, S) ->
      case contact_tracker(S, "started") of
  	{ok, Body} ->
  	    {ok, NextRequestTime, NS} =
  		handle_tracker_response(etorrent_bcoding:decode(Body), S),
  	    error_logger:info_msg("Will contact again in ~B seconds~n",
  				  [NextRequestTime]),
  	    {noreply, NS, timer:seconds(NextRequestTime)};
  	timedout ->
  	    {noreply,
  	     S#state{queued_message = "started"},
  	     timer:seconds(?DEFAULT_CONNECTION_TIMEOUT_INTERVAL)}
      end;
  handle_cast(torrent_completed, S) ->
      case contact_tracker(S, "completed") of
  	{ok, Body} ->
  	    {ok, NextRequestTime, NS} =
  		handle_tracker_response(etorrent_bcoding:decode(Body), S),
  	    error_logger:info_msg("Will contact again in ~B seconds~n",
  				  [NextRequestTime]),
  	    {noreply, NS, timer:seconds(NextRequestTime)};
  	timedout ->
  	    {noreply,
  	     S#state{queued_message = "completed"},
  	     timer:seconds(?DEFAULT_CONNECTION_TIMEOUT_INTERVAL)}
      end.
  
  %%--------------------------------------------------------------------
  
negative.code: 
  -define(DEFAULT_REQUEST_TIMEOUT, 180).
  -define(DEFAULT_CONNECTION_TIMEOUT_INTERVAL, 1800).
  -define(DEFAULT_TRACKER_OVERLOAD_INTERVAL, 300).
  
  %%====================================================================
  %% API
  