anchor.diff:  
   
   handle_config_change("replicator", "max_replication_retry_count", V, _, S) ->
  -    ok = gen_server:cast(S, {set_max_retries, retries_value(V)}),
  +    ok = gen_server:cast(?MODULE, {set_max_retries, retries_value(V)}),
       {ok, S};
   handle_config_change(_, _, _, _, S) ->
       {ok, S}.
   
  -handle_config_terminate(_, stop, _) -> ok;
  -handle_config_terminate(Self, _, _) ->
  -    spawn(fun() ->
  -        timer:sleep(5000),
  -        config:listen_for_changes(?MODULE, Self)
  -    end).
  +handle_config_terminate(_, stop, _) ->
  +    ok;
  +handle_config_terminate(_Server, _Reason, _State) ->
  +    erlang:send_after(?RELISTEN_DELAY, whereis(?MODULE), restart_config_listener).
   
   init(_) ->
       process_flag(trap_exit, true),
  
positive.code: 
  handle_info(shutdown, State) ->
      {stop, shutdown, State};
  
  handle_info(Msg, State) ->
      couch_log:error("Replication manager received unexpected message ~p", [Msg]),
  
negative.code: 
  -module(couch_replicator_manager).
  -behaviour(gen_server).
  -vsn(3).
  -behaviour(config_listener).
  
  % public API
  