anchor.diff:  handle_cast(torrent_completed, S) ->
       case contact_tracker(S, "completed") of
   	{ok, Body} ->
  -	    {ok, NextRequestTime, NS} = decode_and_handle_body(Body, S),
  +	    {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)};
  
positive.code: handle_info(timeout, S) ->
      case contact_tracker(S, S#state.queued_message) of
  	{ok, Body} ->
  	    {ok, NextRequestTime, NS} = decode_and_handle_body(Body, S),
  	    {noreply,
  	     NS#state{queued_message=none},
  	     timer:seconds(NextRequestTime)};
  
negative.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)};
  