diff -u build.conf build.conf
--- build.conf	(working copy)
+++ build.conf	(working copy)
@@ -205,15 +205,18 @@
 type = apache-mod
 path = subversion/mod_dav_svn
 libs = libsvn_repos libsvn_fs libsvn_delta libsvn_subr
+nonlibs = apr aprutil
 install = apache-mod
+msvc-libs = mod_dav.lib libhttpd.lib
 
 [mod_authz_svn]
 description = Subversion path-based authorization module for Apache
 type = apache-mod
 path = subversion/mod_authz_svn
-nonlibs = mod_dav_svn
+nonlibs = mod_dav_svn apr aprutil
 libs = libsvn_subr
 install = apache-mod
+msvc-libs = libhttpd.lib
 
 [svnserve]
 description = Subversion Server
diff -u build/generator/gen_win.py build/generator/gen_win.py
--- build/generator/gen_win.py	(working copy)
+++ build/generator/gen_win.py	(working copy)
@@ -334,13 +334,6 @@
     else:
       depends = self.sections['__CONFIG__'].get_dep_targets(target)
 
-    ### If we link everything with the dynamic apr library instead of the
-    ### static one we could get rid of a lot of this special case apache 
-    ### code...
-    if isinstance(target, gen_base.TargetApacheMod):
-      depends.extend(self.graph.get_sources(gen_base.DT_NONLIB, target.name))
-      return depends
-
     depends.extend(self.get_win_depends(target))
 
     depends = filter(lambda x: hasattr(x, 'proj_name'), depends)
@@ -366,7 +359,8 @@
     top_call = top_static or not isinstance(target, gen_base.TargetLib) \
                or not target.msvc_static 
 
-    for dep in self.graph.get_sources(gen_base.DT_LINK, target.name):
+    for dep in (self.graph.get_sources(gen_base.DT_LINK, target.name) +
+                self.graph.get_sources(gen_base.DT_NONLIB, target.name)):
       if not isinstance(dep, gen_base.Target):
         continue
 
@@ -448,9 +442,6 @@
     if isinstance(target, gen_base.TargetApacheMod):
       fakelibdirs.extend([
         self.httpd_path + "/%s" % cfg,
-        self.httpd_path + "/srclib/apr/%s" % cfg,
-        self.httpd_path + "/srclib/apr-util/%s" % cfg,
-        self.httpd_path + "/srclib/apr-util/xml/expat/lib/%s" % libcfg
         ])
       if target.name == 'mod_dav_svn':
         fakelibdirs.extend([self.httpd_path + "/modules/dav/main/%s" % cfg])
@@ -462,23 +453,6 @@
 
     dblib = self.dblibname+(cfg == 'Debug' and 'd.lib' or '.lib')
 
-    if isinstance(target, gen_base.TargetApacheMod):
-      if target.name == 'mod_dav_svn':
-        libs = [ dblib,
-                 'mod_dav.lib' ]
-      else:
-        libs = []
-      libs.extend([ 'xml.lib',
-                    'libapr.lib',
-                    'libaprutil.lib',
-                    'libhttpd.lib',
-                    'mswsock.lib',
-                    'ws2_32.lib',
-                    'advapi32.lib',
-                    'rpcrt4.lib',
-                    'shfolder.lib' ])
-      return libs
-
     if not isinstance(target, gen_base.TargetLinked):
       return []
 
@@ -508,15 +482,6 @@
 
     sources = { }
 
-    if isinstance(target, gen_base.TargetApacheMod):
-      # get (fname, reldir) pairs for dependent libs
-      for dep_tgt in self.get_win_depends(target):
-        if not isinstance(dep_tgt, gen_base.TargetLib):
-          continue
-        subdir = string.replace(dep_tgt.name, 'libsvn_', '')
-        for src in self.get_win_sources(dep_tgt, subdir):
-          sources[src] = None
-
     for obj in self.graph.get_sources(gen_base.DT_LINK, target.name):
       if isinstance(obj, gen_base.Target):
         continue

