anchor.diff:                  undefined -> [];
                   Auth -> [ {"Authorization", to_list(Auth)} ]
               end,
  -            case fetch_stream(start_stream(Host, Url, Headers, Opts), Max, OutDev) of
  +            case fetch_stream(start_stream(Host, Url, Headers, Opts), Max, OutDev, Opts) of
                   {ok, Result} ->
                       maybe_redirect(Result, Url, RedirectCount, Max, OutDev, Opts);
                   {error, _} = Error ->
  
positive.code:             {ok, {200, Hs, N, Data}};
          {http, {ReqId, {error, _} = Error}} ->
              Error
      after ?HTTPC_TIMEOUT ->
          httpc:cancel_request(ReqId),
          {error, timeout}
      end;
  fetch_stream_data(ReqId, _HandlerPid, Hs, Data, N, _Max, _OutFile) ->
      receive
          {http, {ReqId, stream_end, EndHs}} ->
              {ok, {200, EndHs++Hs, N, Data}};
  
negative.code:                     case N1 =< Max of
                          true ->
                              httpc:stream_next(HandlerPid),
                              fetch_stream_data(ReqId, HandlerPid, Hs, Data1, N1, Max, OutDev, Opts);
                          false ->
                              httpc:cancel_request(ReqId),
                              {ok, {200, Hs, N, Data1}}
  