anchor.diff:  -spec request(pid(), string(), method(), headers(), iodata(), integer(), pos_timeout()) -> result().
   request(Client, Path, Method, Hdrs, Body, SendRetry, Timeout) when is_binary(Path) ->
       try
  -	gen_server:call(Client, {request, Path, Method, Hdrs, Body, SendRetry}, Timeout)
  +    case Timeout of
  +        infinity ->
  +            gen_server:call(Client, {request, Path, Method, Hdrs, Body, SendRetry, Timeout}, Timeout);
  +        _ ->
  +	       gen_server:call(Client, {request, Path, Method, Hdrs, Body, SendRetry, Timeout}, Timeout*SendRetry)
  +    end
       catch
   	exit:{timeout, _} ->
   	    {error, timeout}
  
positive.code:           host_header,
            out_timestamp,
            in_timestamp,
            on_connect
           }).
  
  %%==============================================================================
  
negative.code: -spec read_response(#client_state{}) -> {any(), socket()} | no_return().
  read_response(#client_state{socket = Socket, ssl = Ssl, use_cookies = UseCookies,
                              connection_header = ConHdr, cookies = Cookies,
  			    requester = From, out_timestamp = Out, attempts = Attempts,
                  recv_timeout = RecvTimeout} = State) ->
      case fusco_protocol:recv(Socket, Ssl, RecvTimeout) of
  	#response{status_code = <<$1,_,_>>} ->
  	    %% RFC 2616, section 10.1:
              %% A client MUST be prepared to accept one or more
  