anchor.diff:          {ok, {Db, Seq, Prepend, FilterFun, Resp, nil, IncludeDocs}};
       _ ->
           send_chunk(Resp, [Prepend, ?JSON_ENCODE(
  -            changes_row(Db, Seq, Id, Results, Rev, IncludeDocs))]),
  +            changes_row(Db, Seq, Id, Del, Results, Rev, IncludeDocs))]),
           {ok, {Db, Seq, <<",\n">>, FilterFun, Resp, nil, IncludeDocs}}
       end.
   
   changes_row(Db, Seq, Id, Results, Rev, true) ->
       {[{seq,Seq},{id,Id},
           {changes,Results}] ++
  +        deleted_item(Del) ++
           couch_httpd_view:doc_member(Db, Id, Rev)};
   changes_row(_, Seq, Id, Results, _, false) ->
       {[{seq,Seq},{id,Id},
           {changes,Results}]}.
  +
  +deleted_item(true) -> [{deleted,true}];
  +deleted_item(_) -> [].
   
   send_changes(Req, Resp, Db, Dir, StartSeq, Prepend, ResponseType, FilterFun, End) ->
       Style = list_to_existing_atom(
  
positive.code:             get_rest_db_updated() % clean out any remaining update messages
          end;
      true ->
          {ok, Info} = couch_db:get_db_info(Db),
          CurrentEtag = couch_httpd:make_etag(Info),
          couch_httpd:etag_respond(Req, CurrentEtag, fun() ->
              % send the etag
  
negative.code: 
  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
          _Bad -> throw({bad_request, "descending must be true or false"})
      end,
      ResponseType = couch_httpd:qs_value(Req, "feed", "normal"),
  