Remove AddModule and ClearModuleList. Neither directive really makes much sense anymore, since we use the hooks to order modules correctly. This also removes the possability that one module will ever register the same function for the same hook twice.
Add a call to apr_hook_deregister_all() in the clear_module_list function. The basic problem was that when we load the modules, we call the register_hooks() function from the module, but then we clear the module list for all active modules, and add them back in one at a time. When we add them back, we re-call the register_hooks() function, thus adding each function a second time. This was causing apache.org to log every request twice in the access log. By calling apr_hook_deregister_all() when we unload the module, the second call to register the hooks is the only call that matters.