anchor.diff:      ?DB_TO_SEQ = ets:new(?DB_TO_SEQ, [named_table, set, public]),
       Server = self(),
       ok = config:listen_for_changes(?MODULE, Server),
  +    Epoch = make_ref(),
       ScanPid = spawn_link(fun() -> scan_all_dbs(Server) end),
       % Automatically start node local changes feed loop
       ensure_rep_db_exists(<<"_replicator">>),
  -    Pid = start_changes_reader(<<"_replicator">>, 0),
  +    Pid = start_changes_reader(<<"_replicator">>, 0, Epoch),
       {ok, #state{
           event_listener = start_event_listener(),
           scan_pid = ScanPid,
           max_retries = retries_value(
               config:get("replicator", "max_replication_retry_count", "10")),
           rep_start_pids = [Pid],
  -        live = Live
  +        live = Live,
  +        epoch = Epoch
       }}.
   
   handle_call({owner, RepId}, _From, State) ->
  
positive.code: handle_call({rep_error, RepId, Error}, _From, State) ->
      {reply, ok, replication_error(State, RepId, Error)};
  
  handle_call({rep_db_checkpoint, DbName, EndSeq}, _From, State) ->
      Entry = case ets:lookup(?DB_TO_SEQ, DbName) of
          [] ->
              {DbName, EndSeq, false};
  
negative.code:     {ok, State}.
  
  
  start_changes_reader(DbName, Since, Epoch) ->
      spawn_link(?MODULE, changes_reader, [{self(), Epoch}, DbName, Since]).
  
  changes_reader({Server, Epoch}, DbName, Since) ->
      UserCtx = #user_ctx{roles = [<<"_admin">>, <<"_replicator">>]},
      DbOpenOptions = [{user_ctx, UserCtx}, sys_db],
      {ok, Db} = couch_db:open_int(DbName, DbOpenOptions),
  