anchor.diff:      chttpd:send_error(Req, Reason);
   changes_callback({error, Reason}, Acc) ->
       chttpd:send_delayed_error(Acc#cacc.mochi, Reason).
  +
  +maybe_flush_changes_feed(#cacc{bufsize=Size, threshold=Max} = Acc, Data, Len)
  +         when Size > 0 andalso (Size + Len) > Max ->
  +    #cacc{buffer = Buffer, mochi = Resp} = Acc,
  +    {ok, R1} = chttpd:send_delayed_chunk(Resp, Buffer),
  +    {ok, Acc#cacc{prepend = ",\r\n", buffer = Data, bufsize=Len, mochi = R1}};
  +maybe_flush_changes_feed(Acc0, Data, Len) ->
  +    #cacc{buffer = Buf, bufsize = Size} = Acc0,
  +    Acc = Acc0#cacc{
  +        prepend = ",\r\n",
  +        buffer = [Buf | Data],
  +        bufsize = Size + Len
  +    },
  +    {ok, Acc}.
   
   is_old_couch(Resp) ->
       MochiReq = chttpd:get_delayed_req(Resp),
  
positive.code:     ChangesArgs = Args0#changes_args{
          filter_fun = couch_changes:configure_filter(Raw, Style, Req, Db)
      },
      case ChangesArgs#changes_args.feed of
      "normal" ->
          T0 = os:timestamp(),
  
negative.code:     feed,
      mochi,
      prepend = "",
      responding = false,
      buffer = [],
      bufsize = 0,
      threshold
  }).
  
  -define(IS_ALL_DOCS(T), (
  