anchor.diff:          resource = "_changes",
           qs = QS,
           conn = Pid,
  -        options = [{stream_to, {self(), once}}, {response_format, binary}],
  +        options = [{stream_to, {self(), once}}] ++
  +                lists:keydelete(inactivity_timeout, 1, Source#http_db.options),
           headers = Source#http_db.headers -- [{"Accept-Encoding", "gzip"}]
       },
       {ibrowse_req_id, ReqId} = couch_rep_httpc:request(Req),
  +    Args = [Parent, Req, Since, PostProps],
   
       receive
       {ibrowse_async_headers, ReqId, "200", _} ->
  
positive.code:     {ibrowse_async_headers, ReqId, Code, Hdrs} when Code=="301"; Code=="302" ->
          catch ibrowse:stop_worker_process(Pid),
          Url2 = couch_rep_httpc:redirect_url(Hdrs, Req#http_db.url),
          %% TODO use couch_httpc:request instead of start_http_request
          {Pid2, ReqId2} = start_http_request(Url2),
          receive {ibrowse_async_headers, ReqId2, "200", _} ->
              {ok, #state{conn=Pid2, last_seq=Since, reqid=ReqId2, init_args=Args}}
          after 30000 ->
              {stop, changes_timeout}
          end;
  
negative.code: stop(Server) ->
      gen_server:call(Server, stop).
  
  init([Parent, #http_db{}=Source, Since, PostProps]) ->
      process_flag(trap_exit, true),
      Feed = case couch_util:get_value(<<"continuous">>, PostProps, false) of
      false ->
  