anchor.diff:  dump_library(Pid)       -> gen_server:call(Pid, dump_library, 60000).
   %%
   
  +% Non-standard init, when used by proxy for another type of library:
  +init([Name]) when is_list(Name) ->
  +    DbDir = ?CONFVAL({library,dbdir}, "."),
  +    {ok, Ndb} = dets:open_file(DbDir++"/"++Name++"_index.db",[{type, bag}]),
  +    {ok, Fdb} = dets:open_file(DbDir++"/"++Name++".db", [{type, set}]),
  +    ?LOG(info, "Library index (for ~s) contains ~w files", 
  +               [Name, proplists:get_value(size, dets:info(Fdb), -1)]),
  +    {ok, #state{scanner=undefined, ndb=Ndb, fdb=Fdb, customname=Name}};
  +
  +% Default init, when acting as normal library resolver
   init([]) ->
       DbDir = ?CONFVAL({library,dbdir}, "."),
       {ok, Ndb} = dets:open_file(DbDir++"/library_index.db",[{type, bag}]),
  
positive.code:     case Q of
          {struct, Mq} -> % Mq is a proplist
              Hostname = ?CONFVAL(name, "unknown"),
              Report = fun({Props, Score}) ->
                  Rep =   {struct, [
                                  {<<"artist">>, proplists:get_value(artist, Props)},
  
negative.code:     % start the scanner (kind of a hack, but deadlock if we do it in init here):
      self() ! start_scanner,        
      resolver:add_resolver(?MODULE, name(self()), weight(self()), targettime(self()), self()),
      {ok, #state{scanner=undefined, ndb=Ndb, fdb=Fdb, customname=""}}.
  
  handle_cast(sync, State) -> 
      dets:sync(State#state.fdb),
  