diff --git a/src/site/resources/download.cgi b/src/site/resources/download.cgi
new file mode 100755
index 0000000..916d44e
--- /dev/null
+++ b/src/site/resources/download.cgi
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.    
+
+cd /www/www.apache.org/dyn/mirrors
+/www/www.apache.org/dyn/mirrors/mirrors.cgi $*
diff --git a/src/site/xdoc/download.xml b/src/site/xdoc/download.xml
new file mode 100644
index 0000000..57812fb
--- /dev/null
+++ b/src/site/xdoc/download.xml
@@ -0,0 +1,166 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation Maven//EN" "http://maven.apache.org/dtd/xdoc_1_0.dtd">
+<document>
+  <properties>
+    <title>The Apache Velocity Project</title>
+    <author email="dev@velocity.apache.org">
+      Velocity Documentation Team
+    </author>
+  </properties>
+
+  <body>
+    <section name="Downloads"> 
+      <p>
+        You can download sources and binaries for all Velocity projects from here.
+      </p>
+
+      <a name="mirror" />
+      <subsection name="Mirror Selection">
+        <p>
+          [if-any logo]
+          <a href="[link]"><img align="right" src="[logo]" border="0" alt="logo"/></a>
+          [end]
+          The currently selected mirror is <b>[preferred]</b>.
+          If you encounter a problem with this mirror,
+          please select another mirror.
+          If all mirrors are failing, there are <i>backup</i> mirrors
+          (at the end of the mirrors list) that should be available.
+        </p>
+
+        <form action="[location]" method="get" id="SelectMirror">
+          <p>
+            Other mirrors:
+            <select name="Preferred">
+              [if-any http]
+                [for http]
+                  <option value="[http]">[http]</option>
+                 [end]
+              [end]
+              [if-any ftp]
+                [for ftp]
+                  <option value="[ftp]">[ftp]</option>
+                [end]
+              [end]
+              [if-any backup]
+                [for backup]
+                  <option value="[backup]">[backup] (backup)</option>
+                [end]
+              [end]
+            </select>
+            <input type="submit" value="Change" />
+          </p>
+        </form>
+ 
+        <p>
+          You may also consult the <a href="http://www.apache.org/mirrors/">complete list of mirrors</a>.
+        </p>
+      </subsection>
+    </section>
+
+    <section name="Production releases">
+      <p>
+        These releases are considered stable and suitable for production.
+      </p>
+      <table>
+        <tr>
+          <th>Project</th>
+          <th>Source distribution</th>
+          <th>Binary distribution</th>
+        </tr>
+        <tr>
+          <td>Engine</td>
+          <td>(The binary distribution contains the source)</td>
+          <td><a href="[preferred]/velocity/engine/release/velocity-1.4/velocity-1.4.zip">velocity-1.4.zip</a>
+                          [<a href="http://www.apache.org/velocity/engine/release/velocity-1.4/velocity-1.4.zip.asc">PGP</a>]
+                          [<a href="http://www.apache.org/velocity/engine/release/velocity-1.4/velocity-1.4.zip.md5">MD5</a>]
+          </td>
+        </tr>
+        <tr>
+          <td />
+          <td>(The binary distribution contains the source)</td>
+          <td><a href="[preferred]/velocity/engine/release/velocity-1.4/velocity-1.4.tar.gz">velocity-1.4.tar.gz</a>
+                          [<a href="http://www.apache.org/velocity/engine/release/velocity-1.4/velocity-1.4.tar.gz.asc">PGP</a>]
+                          [<a href="http://www.apache.org/velocity/engine/release/velocity-1.4/velocity-1.4.tar.gz.md5">MD5</a>]
+          </td>
+        </tr>
+        <tr>
+          <td>Tools</td>
+          <td><a href="[preferred]/velocity/tools/release/velocity-tools-1.2/velocity-tools-src-1.2.zip">velocity-tools-src-1.2.zip</a>
+                          [<a href="http://www.apache.org/velocity/tools/release/velocity-tools-1.2/velocity-tools-src-1.2.zip.asc">PGP</a>]
+                          [<a href="http://www.apache.org/velocity/tools/release/velocity-tools-1.2/velocity-tools-src-1.2.zip.md5">MD5</a>]
+          </td>
+          <td><a href="[preferred]/velocity/tools/release/velocity-tools-1.2/velocity-tools-1.2.zip">velocity-tools-1.2.zip</a>
+                          [<a href="http://www.apache.org/velocity/tools/release/velocity-tools-1.2/velocity-tools-1.2.zip.asc">PGP</a>]
+                          [<a href="http://www.apache.org/velocity/tools/release/velocity-tools-1.2/velocity-tools-1.2.zip.md5">MD5</a>]
+          </td>
+        </tr>
+        <tr>
+          <td/>
+          <td><a href="[preferred]/velocity/tools/release/velocity-tools-1.2/velocity-tools-src-1.2.tar.gz">velocity-tools-src-1.2.tar.gz</a>
+                          [<a href="http://www.apache.org/velocity/tools/release/velocity-tools-1.2/velocity-tools-src-1.2.tar.gz.asc">PGP</a>]
+                          [<a href="http://www.apache.org/velocity/tools/release/velocity-tools-1.2/velocity-tools-src-1.2.tar.gz.md5">MD5</a>]
+          </td>
+          <td><a href="[preferred]/velocity/tools/release/velocity-tools-1.2/velocity-tools-1.2.tar.gz">velocity-tools-1.2.tar.gz</a>
+                          [<a href="http://www.apache.org/velocity/tools/release/velocity-tools-1.2/velocity-tools-1.2.tar.gz.asc">PGP</a>]
+                          [<a href="http://www.apache.org/velocity/tools/release/velocity-tools-1.2/velocity-tools-1.2.tar.gz.md5">MD5</a>]
+          </td>
+        </tr>
+      </table>
+    </section>
+
+    <section name="Alpha/Beta releases">
+      <p>
+        These releases are not considered production-ready but they might contain new features or bug fixes that are not yet in the 
+        production release.
+      </p>
+      <table>
+        <tr>
+          <th>Project</th>
+          <th>Source distribution</th>
+          <th>Binary distribution</th>
+        </tr>
+        <tr>
+          <td>Engine</td>
+          <td>(The binary distribution contains the source)</td>
+          <td><a href="[preferred]/velocity/engine/release/velocity-1.5-beta2/velocity-1.5-beta2.zip">velocity-1.5-beta2.zip</a>
+                          [<a href="http://www.apache.org/velocity/engine/release/velocity-1.5-beta2/velocity-1.5-beta2.zip.asc">PGP</a>]
+                          [<a href="http://www.apache.org/velocity/engine/release/velocity-1.5-beta2/velocity-1.5-beta2.zip.md5">MD5</a>]
+                          [<a href="http://www.apache.org/velocity/engine/release/velocity-1.5-beta2/velocity-1.5-beta2.zip.sha1">SHA1</a>]
+          </td>
+        </tr>
+        <tr>
+          <td />
+          <td>(The binary distribution contains the source)</td>
+          <td><a href="[preferred]/velocity/engine/release/velocity-1.5-beta2/velocity-1.5-beta2.tar.gz">velocity-1.5-beta2.tar.gz</a>
+                          [<a href="http://www.apache.org/velocity/engine/release/velocity-1.5-beta2/velocity-1.5-beta2.tar.gz.asc">PGP</a>]
+                          [<a href="http://www.apache.org/velocity/engine/release/velocity-1.5-beta2/velocity-1.5-beta2.tar.gz.md5">MD5</a>]
+                          [<a href="http://www.apache.org/velocity/engine/release/velocity-1.5-beta2/velocity-1.5-beta2.tar.gz.sha1">SHA1</a>]
+          </td>
+        </tr>
+      </table>
+    </section>
+
+    <section name="Nightly builds">
+      <p>
+       The nightly builds are generated automatically and there is no guarantee that these archives even build or work. They
+       are intended if you want to keep up-to-date with the development of a project and can not for any reason download the
+       source code straight from the Subversion repository and build it yourself.
+      </p>
+    </section>
+   
+    <section name="Source code repository">
+      <p>
+       You can download the source code to each Apache Velocity project directly from our public subversion repository. Here
+       you get logs, change histories and all the information necessary to follow the development process. If you are interested
+       in the project development, please join the Apache Velocity development list.
+      </p>
+      <table>
+        <tr>
+          <th>Project</th>
+          <th>Repository URL</th>
+          <th>ViewVC Subversion browser</th>
+        </tr>
+      </table>
+    </section>
+  </body>
+</document>
diff --git a/src/site/xdoc/downloads.xml b/src/site/xdoc/downloads.xml
deleted file mode 100644
index 2ecbff3..0000000
--- a/src/site/xdoc/downloads.xml
+++ /dev/null
@@ -1,67 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<document>
-  <properties>
-    <title>The Apache Velocity Project</title>
-    <author email="dev@velocity.apache.org">
-      Velocity Documentation Team
-    </author>
-  </properties>
-
-  <body>
-    <section name="Downloads"> 
-      <p>
-        You can download sources and binaries for all Velocity projects from here.
-      </p>
-    </section>
-
-    <section name="Production releases">
-      <p>
-        These releases are considered stable and suitable for production.
-      </p>
-      <table>
-        <tr>
-          <th>Project</th>
-          <th>Source distribution</th>
-          <th>Binary distribution</th>
-        </tr>
-      </table>
-    </section>
-
-    <section name="Alpha/Beta releases">
-      <p>
-        These releases are not yet production-ready but they might contain new features or bug fixes that are not yet in the 
-        production release.
-      </p>
-      <table>
-        <tr>
-          <th>Project</th>
-          <th>Source distribution</th>
-          <th>Binary distribution</th>
-        </tr>
-      </table>
-    </section>
-
-    <section name="Nightly builds">
-      <p>
-       The nightly builds are generated automatically and there is no guarantee that these archives even build or work. They
-       are intended if you want to keep up-to-date with the development of a project and can not for any reason download the
-       source code straight from the Subversion repository and build it yourself.
-      </p>
-    </section>
-   
-    <section name="Source code repository">
-      <p>
-       You can download the source code to each Apache Velocity project directly from our public subversion repository. Here
-       you get logs, change histories and all the information necessary to follow the development process. If you are interested
-       in the project development, please join the Apache Velocity development list.
-      </p>
-      <table>
-        <tr>
-          <th>Project</th>
-          <th>Repository URL</th>
-          <th>ViewVC Subversion browser</th>
-        </tr>
-      </table>
-    </section>
-  </body>
-</document>
