anchor.diff:  handle_call({update, IdxState}, _From, #st{idx=Idx, mod=Mod}=State) ->
       Args = [Mod:get(db_name, IdxState), Mod:get(idx_name, IdxState)],
       ?LOG_INFO("Starting index update for db: ~s idx: ~s", Args),
  -    Pid = spawn_link(fun() -> update(Idx, Mod, IdxState) end),
  +    Pid = spawn_link(?MODULE, update, [Idx, Mod, IdxState]),
       {reply, ok, State#st{pid=Pid}};
   handle_call({restart, IdxState}, _From, #st{idx=Idx, mod=Mod}=State) ->
       Args = [Mod:get(db_name, IdxState), Mod:get(idx_name, IdxState)],
  
positive.code:         true -> couch_util:shutdown_sync(State#st.pid);
          _ -> ok
      end,
      Pid = spawn_link(fun() -> update(Idx, State#st.mod, IdxState) end),
      {reply, ok, State#st{pid=Pid}};
  handle_call(is_running, _From, #st{pid=Pid}=State) when is_pid(Pid) ->
      {reply, true, State};
  
negative.code:     {noreply, State#st{pid=undefined}};
  handle_info({'EXIT', _, {reset, Pid}}, #st{idx=Idx, pid=Pid}=State) ->
      {ok, NewIdxState} = gen_server:call(State#st.idx, reset),
      Pid2 = spawn_link(?MODULE, update, [Idx, State#st.mod, NewIdxState]),
      {noreply, State#st{pid=Pid2}};
  handle_info({'EXIT', Pid, normal}, #st{pid=Pid}=State) ->
      {noreply, State#st{pid=undefined}};
  