anchor.diff:              A2 = Auth#auth{realm = Realm},
               fload(FD, server_auth, GC, C, Cs, Lno+1, Next, A2);
           ["authmod", '=', Mod] ->
  -	    %% Add the auth header for the mod
   	    Mod2 = list_to_atom(Mod),
   	    code:ensure_loaded(Mod2),
  +	    %% Add the auth header for the mod
   	    H = Mod2:get_header() ++ Auth#auth.headers,
               A2 = Auth#auth{mod = Mod2, headers = H},
               fload(FD, server_auth, GC, C, Cs, Lno+1, Next, A2);
  
positive.code:     end,
      start_pam(T).
  
  load_yaws_auth_file(_SC, [], Acc) ->
      Acc;
  
  load_yaws_auth_file(SC, [A|T], Acc) ->
      [Dir] = A#auth.dir,
      FN=[SC#sconf.docroot , [$/|Dir], [$/|".yaws_auth"]],
      A2 = case file:consult(FN) of
  	{ok, [{realm, Realm} |TermList]} ->
  	    error_logger:info_msg("Reading .yaws_auth ~s~n",[FN]),
  	    Header = A#auth.headers ++ 
  		yaws:make_www_authenticate_header({realm, Realm}),
  	    {Dir, A#auth{realm = Realm,
  			 users = TermList++A#auth.users,
  			 headers = Header}};
  	{ok, TermList} ->
  	    error_logger:info_msg("Reading .yaws_auth ~s~n",[FN]),
  	    Header = A#auth.headers ++ 
  		yaws:make_www_authenticate_header({realm, ""}),
  	    {Dir, A#auth{users = TermList++A#auth.users,
  			 headers = Header}};
  	{error, enoent} ->
  	    {Dir, A};
  	_Err ->
  	    error_logger:format("Bad .yaws_auth file in dir ~p~n", 
  				[Dir]),
  	    {Dir, A}
      end,
      load_yaws_auth_file(SC, T, [A2|Acc]). 
  
  
  
  %% This is the function that arranges sconfs into
  %% different server groups
  
negative.code: get_yaws_auth_dirs(_Docroot, [], AuthDirs) ->
      AuthDirs;
  
  %% Recursivly search the docroot for any dir that contains .yaws_auth 
  %% and return it
  get_yaws_auth_dirs(Docroot, [File|T], AuthDirs0) ->
      Path = string:concat(Docroot, File),
      case filelib:is_dir(Path) of
  