anchor.diff:  keep_sending_changes(DbName, Args, Callback, Seqs, AccIn, Timeout, UpListen, T0) ->
       #changes_args{limit=Limit, feed=Feed, heartbeat=Heartbeat} = Args,
       {ok, Collector} = send_changes(DbName, Args, Callback, Seqs, AccIn, Timeout),
  -    #collector{limit=Limit2, counters=NewSeqs, user_acc=AccOut} = Collector,
  +    #collector{
  +        limit = Limit2,
  +        counters = NewSeqs,
  +        offset = Offset,
  +        user_acc = AccOut
  +    } = Collector,
       LastSeq = pack_seqs(NewSeqs),
       MaintenanceMode = config:get("cloudant", "maintenance_mode"),
       if Limit > Limit2, Feed == "longpoll";
         MaintenanceMode == "true"; MaintenanceMode == "nolb" ->
  -        Callback({stop, LastSeq}, AccOut);
  +        Callback({stop, LastSeq, pending_count(Offset)}, AccOut);
       true ->
           WaitForUpdate = wait_db_updated(UpListen),
           AccumulatedTime = timer:now_diff(os:timestamp(), T0) div 1000,
  
positive.code:     case validate_start_seq(DbName, Since) of
      ok ->
          {ok, Acc} = Callback(start, Acc0),
          {ok, #collector{counters=Seqs, user_acc=AccOut}} = send_changes(
              DbName,
              Args,
              Callback,
  
negative.code:         counters = orddict:from_list(Seqs),
          user_acc = AccIn,
          limit = ChangesArgs#changes_args.limit,
          offset = fabric_dict:init(Workers, null),
          rows = Seqs % store sequence positions instead
      },
      %% TODO: errors need to be handled here
  