diff --git a/docs/manual/mod/mod_fcgid.html.en b/docs/manual/mod/mod_fcgid.html.en
index 314f40b..3df4b19 100644
--- a/docs/manual/mod/mod_fcgid.html.en
+++ b/docs/manual/mod/mod_fcgid.html.en
@@ -1,6 +1,8 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head><!--
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head>
+<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
+<!--
         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
               This file is generated from xml source: DO NOT EDIT
         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
@@ -37,8 +39,10 @@
     using the FastCGI protocol; <code class="module"><a href="../mod/mod_fcgid.html">mod_fcgid</a></code> starts a sufficient
     number instances of the program to handle concurrent requests, and these
     programs remain running to handle further incoming requests.  This is
-    significantly faster than using the default <code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code> or
-    <code class="module"><a href="../mod/mod_cgid.html">mod_cgid</a></code> modules to launch the program upon each request.
+    significantly faster than using the default 
+    <a href="//httpd.apache.org/docs/current/mod/mod_cgi.html">mod_cgi</a> or
+    <a href="//httpd.apache.org/docs/current/mod/mod_cgid.html">mod_cgid</a> 
+    modules to launch the program upon each request.
     However, the programs invoked by <code class="module"><a href="../mod/mod_fcgid.html">mod_fcgid</a></code> continue to
     consume resources, so the administrator must weigh the impact of invoking
     a particular program once per request against the resources required to
@@ -50,8 +54,9 @@
 
     <p>Specific executables are assigned this handler either by having a name
     containing an extension defined by the
-    <code class="directive"><a href="../mod/mod_mime.html#addhandler">AddHandler</a></code> directive, or with an
-    override using the <code class="directive"><a href="../mod/mod_mime.html#sethandler">SetHandler</a></code>
+    <a href="//httpd.apache.org/docs/current/mod/mod_mime.html#addhandler">AddHandler</a> 
+    directive, or with an override using the
+    <a href="//httpd.apache.org/docs/current/mod/mod_mime.html#sethandler">SetHandler</a>
     directive (e.g., for all files in a specific directory such as cgi-bin).</p>
 
     <p>Some changes have been made in the ASF release of mod_fcgid which
@@ -61,11 +66,20 @@
     details.</p>
 
     <p>For an introduction to using CGI scripts with Apache, see
-    the generic tutorial on <a href="../howto/cgi.html">Dynamic Content
-    With CGI</a>.</p>
+    the generic tutorial on <a href="//httpd.apache.org/docs/howto/cgi.html">Dynamic Content
+    with CGI</a>.</p>
+
+    <p><code class="module"><a href="../mod/mod_fcgid.html">mod_fcgid</a></code> requires <a href="//httpd.apache.org/docs/current/mod/mod_unixd.html">mod_unixd</a>
+    to be loaded before itself in the httpd config.</p>
 
   </div>
-<div id="quickview"><h3 class="directives">Directives</h3>
+<div id="quickview"><h3>Topics</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#upgrade">Upgrade Notes</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#errordocuments">Fcgid and Apache ErrorDocument</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#examples">Examples</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#process-mgmt">Process Management</a></li>
+</ul><h3 class="directives">Directives</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#fcgidaccesschecker">FcgidAccessChecker</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#fcgidaccesscheckerauthoritative">FcgidAccessCheckerAuthoritative</a></li>
@@ -102,17 +116,11 @@
 <li><img alt="" src="../images/down.gif" /> <a href="#fcgidwrapper">FcgidWrapper</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#fcgidzombiescaninterval">FcgidZombieScanInterval</a></li>
 </ul>
-<h3>Topics</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#upgrade">Upgrade Notes</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#errordocuments">Fcgid and Apache ErrorDocument</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#examples">Examples</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#process-mgmt">Process Management</a></li>
-</ul><h3>See also</h3>
+<h3>See also</h3>
 <ul class="seealso">
-<li><a href="http://httpd.apache.org/docs/howto/cgi.html">Dynamic Content With CGI</a></li>
-<li><a href="http://httpd.apache.org/docs/mod/mod_cgi.html">mod_cgi</a></li>
-<li><a href="http://httpd.apache.org/docs/mod/mod_cgid.html">mod_cgid</a></li>
+<li><a href="//httpd.apache.org/docs/howto/cgi.html">Dynamic Content With CGI</a></li>
+<li><a href="//httpd.apache.org/docs/mod/mod_cgi.html">mod_cgi</a></li>
+<li><a href="//httpd.apache.org/docs/mod/mod_cgid.html">mod_cgid</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
@@ -264,15 +272,16 @@
 <div class="section">
 <h2><a name="errordocuments" id="errordocuments">Fcgid and Apache ErrorDocument</a></h2>
     
-    <p>The core directive <code class="directive"><a href="../mod/core.html#errordocument">ErrorDocument</a></code> allows the user to specify custom error pages
-       for specific HTTP error codes. An important note must be made: if the error 
-       page is generated by the fastcgi script, <code>mod_fcgid</code> will
+    <p>The core directive <a href="//httpd.apache.org/docs/current/mod/core.html#errordocument">ErrorDocument</a> 
+       allows the user to specify custom error pages for specific HTTP error codes. 
+       An important note must be made: if the error page is generated by the fastcgi script, <code>mod_fcgid</code> will
        pass the response down to the output filter chain bypassing the Apache's 
        ErrorDocuments. Conversely, if the error is generated by Apache itself (for example, a HTTP 404
        due to a missing resource) then the ErrorDocument set will be used. 
        This behaviour is the most conservative one to interfere as little as
        possible with the fastcgi's response generation logic. <code>mod_proxy</code> shows the same 
-       behaviour but it offers <code class="directive"><a href="../mod/mod_proxy.html#proxyerroroverride">ProxyErrorOverride</a></code> 
+       behaviour but it offers 
+       <a href="//httpd.apache.org/docs/current/mod/mod_proxy.html#proxyerroroverride">ProxyErrorOverride</a> 
        to force the use of ErrorDocuments, meanwhile <code>mod_fcgid</code> does not. 
        A common workaround is to instruct the fcgi script to generate the ErrorDocuments
        to have full control of the response content.</p>
@@ -284,7 +293,7 @@
     <div class="note"><h3>Note</h3>
     <p>The examples assume that mod_fcgid and other necessary
     modules are loaded into the server already, either built-in or
-    via the <code class="directive"><a href="../mod/mod_so.html#loadmodule">LoadModule</a></code>
+    via the <a href="//httpd.apache.org/docs/current/mod/mod_so.html#loadmodule">LoadModule</a>
     directive.</p>
 
     <p>Additionally, the example configurations provide full access
@@ -1329,7 +1338,7 @@
     }
 })(window, document);
 //--><!]]></script></div><div id="footer">
-<p class="apache">Copyright 2014 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
+<p class="apache">Copyright 2016 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
 <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
 if (typeof(prettyPrint) !== 'undefined') {
     prettyPrint();
diff --git a/docs/manual/mod/mod_fcgid.xml b/docs/manual/mod/mod_fcgid.xml
index 8ee0708..108c566 100644
--- a/docs/manual/mod/mod_fcgid.xml
+++ b/docs/manual/mod/mod_fcgid.xml
@@ -31,8 +31,10 @@
     using the FastCGI protocol; <module>mod_fcgid</module> starts a sufficient
     number instances of the program to handle concurrent requests, and these
     programs remain running to handle further incoming requests.  This is
-    significantly faster than using the default <module>mod_cgi</module> or
-    <module>mod_cgid</module> modules to launch the program upon each request.
+    significantly faster than using the default 
+    <a href="//httpd.apache.org/docs/current/mod/mod_cgi.html">mod_cgi</a> or
+    <a href="//httpd.apache.org/docs/current/mod/mod_cgid.html">mod_cgid</a> 
+    modules to launch the program upon each request.
     However, the programs invoked by <module>mod_fcgid</module> continue to
     consume resources, so the administrator must weigh the impact of invoking
     a particular program once per request against the resources required to
@@ -44,8 +46,9 @@
 
     <p>Specific executables are assigned this handler either by having a name
     containing an extension defined by the
-    <directive module="mod_mime">AddHandler</directive> directive, or with an
-    override using the <directive module="mod_mime">SetHandler</directive>
+    <a href="//httpd.apache.org/docs/current/mod/mod_mime.html#addhandler">AddHandler</a> 
+    directive, or with an override using the
+    <a href="//httpd.apache.org/docs/current/mod/mod_mime.html#sethandler">SetHandler</a>
     directive (e.g., for all files in a specific directory such as cgi-bin).</p>
 
     <p>Some changes have been made in the ASF release of mod_fcgid which
@@ -55,15 +58,18 @@
     details.</p>
 
     <p>For an introduction to using CGI scripts with Apache, see
-    the generic tutorial on <a href="../howto/cgi.html">Dynamic Content
-    With CGI</a>.</p>
+    the generic tutorial on <a href="//httpd.apache.org/docs/howto/cgi.html">Dynamic Content
+    with CGI</a>.</p>
+
+    <p><module>mod_fcgid</module> requires <a href="//httpd.apache.org/docs/current/mod/mod_unixd.html">mod_unixd</a>
+    to be loaded before itself in the httpd config.</p>
 
   </summary>
 
   <!-- References to other documents or directives -->
-  <seealso><a href="http://httpd.apache.org/docs/howto/cgi.html">Dynamic Content With CGI</a></seealso>
-  <seealso><a href="http://httpd.apache.org/docs/mod/mod_cgi.html">mod_cgi</a></seealso>
-  <seealso><a href="http://httpd.apache.org/docs/mod/mod_cgid.html">mod_cgid</a></seealso>
+  <seealso><a href="//httpd.apache.org/docs/howto/cgi.html">Dynamic Content With CGI</a></seealso>
+  <seealso><a href="//httpd.apache.org/docs/mod/mod_cgi.html">mod_cgi</a></seealso>
+  <seealso><a href="//httpd.apache.org/docs/mod/mod_cgid.html">mod_cgid</a></seealso>
 
   <section id="upgrade">
     <title>Upgrade Notes</title>
@@ -214,15 +220,16 @@
   
   <section id="errordocuments">
     <title>Fcgid and Apache ErrorDocument</title>
-    <p>The core directive <directive module="core">ErrorDocument</directive> allows the user to specify custom error pages
-       for specific HTTP error codes. An important note must be made: if the error 
-       page is generated by the fastcgi script, <code>mod_fcgid</code> will
+    <p>The core directive <a href="//httpd.apache.org/docs/current/mod/core.html#errordocument">ErrorDocument</a> 
+       allows the user to specify custom error pages for specific HTTP error codes. 
+       An important note must be made: if the error page is generated by the fastcgi script, <code>mod_fcgid</code> will
        pass the response down to the output filter chain bypassing the Apache's 
        ErrorDocuments. Conversely, if the error is generated by Apache itself (for example, a HTTP 404
        due to a missing resource) then the ErrorDocument set will be used. 
        This behaviour is the most conservative one to interfere as little as
        possible with the fastcgi's response generation logic. <code>mod_proxy</code> shows the same 
-       behaviour but it offers <directive module="mod_proxy">ProxyErrorOverride</directive> 
+       behaviour but it offers 
+       <a href="//httpd.apache.org/docs/current/mod/mod_proxy.html#proxyerroroverride">ProxyErrorOverride</a> 
        to force the use of ErrorDocuments, meanwhile <code>mod_fcgid</code> does not. 
        A common workaround is to instruct the fcgi script to generate the ErrorDocuments
        to have full control of the response content.</p>
@@ -234,7 +241,7 @@
     <note type="hint"><title>Note</title>
     <p>The examples assume that mod_fcgid and other necessary
     modules are loaded into the server already, either built-in or
-    via the <directive module="mod_so">LoadModule</directive>
+    via the <a href="//httpd.apache.org/docs/current/mod/mod_so.html#loadmodule">LoadModule</a>
     directive.</p>
 
     <p>Additionally, the example configurations provide full access
