anchor.diff:      logger:log(debug, "Userdb: ~p:get_users_for_addresses_of_record ~p -> ~p", [Src, Addresses, Res]),
       Res.
   
  -% Gets all addresses for a user. Used for example
  -% to check if a request from a user has an acceptable
  -% From: header.
  +%% Gets all addresses for a user. Used for example
  +%% to check if a request from a user has an acceptable
  +%% From: header.
   get_addresses_for_user(User) ->
       {Src, Res} = module_apply(get_addresses_for_user, [User]),
       logger:log(debug, "Userdb: ~p:get_addresses_for_user ~p -> ~p", [Src, User, Res]),
  
positive.code:     {"*", nomatch};
  module_apply([Module | NextModule], Function, Args) ->
      case apply(Module, Function, Args) of
  	error ->	
  	    logger:log(debug, "Userdb: Error was returned from ~p:~p (arguments ~p), throwing 500 Server Internal Error",
  	    		[Module, Function, Args]),
  	    throw({siperror, 500, "Server Internal Error"});
  	nomatch ->
  	    module_apply(NextModule, Function, Args);
  
negative.code:     Res.
  
  
  %% Gets all users for an URL. Used to route incoming requests.
  get_users_for_url(URL) ->
      {Src, Res} = module_apply(get_users_for_url, [URL]),
      logger:log(debug, "Userdb: ~p:get_users_for_url ~p -> ~p", [Src, sipurl:print(URL), Res]),
      Res.
  
  
  %% Attribute fetching functions :
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
  get_password_for_user(User) ->
      {Src, Res} = module_apply(get_password_for_user, [User]),
      ResStr = case Res of
  		 _ when list(Res) -> "password not shown";
  		 _ -> atom_to_list(Res)
  	     end,
      logger:log(debug, "Userdb: ~p:get_password_for_user ~p -> ~s", [Src, User, ResStr]),
      Res.
  
  