anchor.diff:  
   handle_changes_req(#httpd{method='GET',path_parts=[DbName|_]}=Req, Db) ->
       {FilterFun, EndFilterFun} = make_filter_funs(Req, Db),
  -    {ok, Info} = couch_db:get_db_info(Db),
  -    Seq = proplists:get_value(update_seq, Info),
       {Dir, StartSeq} = case couch_httpd:qs_value(Req, "descending", "false") of 
           "false" -> 
               {fwd, list_to_integer(couch_httpd:qs_value(Req, "since", "0"))}; 
           "true" -> 
  -            {rev, Seq}; % super big value, should use current db seq
  +            {rev, 1000000000000000}; % super big value, should use current db seq
           _Bad -> throw({bad_request, "descending must be true or false"})
       end,
       ResponseType = couch_httpd:qs_value(Req, "feed", "normal"),
  
positive.code:             get_rest_db_updated() % clean out any remaining update messages
          end;
      true ->
          CurrentEtag = couch_httpd:make_etag(Info),
          couch_httpd:etag_respond(Req, CurrentEtag, fun() ->
              % send the etag
  
negative.code:     end.
  
  changes_enumerator(DocInfos, {Db, _, _, FilterFun, Resp, "continuous", IncludeDocs}) ->
      [#doc_info{id=Id, high_seq=Seq, revs=[#rev_info{rev=Rev}|_]}|_] = DocInfos,
      Results0 = [FilterFun(DocInfo) || DocInfo <- DocInfos],
      Results = [Result || Result <- Results0, Result /= null],
      case Results of
      [] ->
          {ok, {Db, Seq, nil, FilterFun, Resp, "continuous", IncludeDocs}};
      _ ->
          send_chunk(Resp, [?JSON_ENCODE(changes_row(Db, Seq, Id, Results, Rev, IncludeDocs))
              |"\n"]),
          {ok, {Db, Seq, nil, FilterFun, Resp, "continuous", IncludeDocs}}
      end;
  changes_enumerator(DocInfos, {Db, _, Prepend, FilterFun, Resp, _, IncludeDocs}) ->
      [#doc_info{id=Id, high_seq=Seq, revs=[#rev_info{rev=Rev}|_]}|_] = DocInfos,
      Results0 = [FilterFun(DocInfo) || DocInfo <- DocInfos],
      Results = [Result || Result <- Results0, Result /= null],
      case Results of
  