diff --git a/maven-patch-plugin.ip-clearance.xml b/maven-patch-plugin.ip-clearance.xml
deleted file mode 100644
index 0c16d58..0000000
--- a/maven-patch-plugin.ip-clearance.xml
+++ /dev/null
@@ -1,246 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<document>
-  <properties>
-    <title>maven-patch-plugin Codebase Intellectual Property (IP) Clearance Status</title>
-  </properties>
-  <body>
-    <section id="Codebase+IP+Clearance+TEMPLATE">
-      <title>Codebase IP Clearance TEMPLATE</title>
-      <pre>-----8-&lt;---- cut here -------8-&lt;---- cut here -------8-&lt;---- cut here-------8-&lt;----</pre>
-      <section id='premable'>
-        <title>Preamble</title>
-      <p>This document is the template for recording IP clearance on new
-codebases. Please store the completed document in this Incubator
-repository using a filename that reflects your project.</p>
-      <p>One of the Incubator's roles is to ensure that proper attention is
-paid to intellectual property. From time to time, an external
-codebase is brought into the ASF that is not a separate project, but
-still represents a substantial contribution that was not developed
-within the ASF's source control system. This is a short form of the
-Incubation checklist, designed to allow code to be imported with
-alacrity while still providing for oversight.</p>
-      <p>This form is not for new projects. The intent is to simply help to
-ensure, and record, that due diligence (Software Grant, CLA, Corp
-CLA, license and dependencies) has been paid to the incoming code, so
-that it can be merged into an existing project/module.</p>
-      <p>The receiving PMC is responsible for doing the work. The Incubator is
-simply the repository of the needed information. Once a PMC directly
-checks-in a filled-out short form, everything is done.</p>
-      <p>All PMCs must handle incoming code in this way. Any code that was
-developed outside of the ASF SVN repository must be processed like
-this, even if the external developer is an ASF committer.</p>
-      </section>
-      <section id='process'>
-        <title>Process</title>
-          <ol>
-            <li>
-IP Clearance processing must be executed either by an Officer 
-or a Member of the ASF. <em>If you are not an Officer or a Member,
-please contact your project chair who will find an appropriate 
-volunteer.</em> Incubator karma is also required. Please request
-karma from the incubator pmc if you do not have it.
-            </li>
-            <li>
-(Optional) <em>Commit an outline <a href='#form-filling'>form</a>, 
-filling those parts which can be (at this stage)</em>.
-            </li>
-            <li>
-A software grant must be provided to the ASF. This grant can either be
-done by the ASF Corporate CLA (via Schedule B) or the traditional
-License Agreement. Acceptable methods of sending the grant to the
-ASF includes:
-<ul>
-<li>snail-mail to the ASF office and/or ASF officer</li>
-<li>FAXing to the ASF office and/or an ASF officer</li>
-<li>Emailing the scanned document to secretary@apache.org
-   <em>and</em> legal-archive@apache.org.</li>
- </ul>
-            </li>
-            <li>
-Receipt of the software grant form <strong>must</strong> be acknowledged
-by an Officer of the ASF by recording in the correct file (<em>grants.txt</em> for a License Grant
-or <em>cclas.txt</em> for a Corporate CLA). In most normal circumstances,
-the officer should be the ASF Secretary, who must be provided a copy of
-the grant or CCLA in any case (if not originally sent or Emailed
-to him).
-            </li>
-            <li>
-<strong>Note:</strong> the grant form <strong>must</strong> be acknowledged
-before continuing. If the source is referenced by checksum in the grant, 
-commit the canonical tarball for the donated code into the incubator
-drop area together with a checksum and a detached signature. This will
-ensure that apache has a legal record of the grant.
-            </li>
-            <li>
-Complete and commit the <a href='#form-filling'>completed form</a>.
-            </li>
-            <li>
-Post a message to general@incubator prefixed [IP CLEARANCE] asking for
-clearance to be checked. Sign off is by lazy consensus so wait at least
-72 hours for a -1. 
-            </li>
-            <li>
-Post a [RESULT] to close the thread and let the project know that the 
-code has been cleared for import.
-            </li>
-          </ol>
-      </section>
-      <section id='form-filling'>
-        <title>Filling The Form</title>
-      <p>What to do to set it up:</p>
-      <ul>
-        <li>copy this file and re-name it according to
-incubator/site-author/ip-clearance/${project-codebase}.html</li>
-        <li>add a row to the table at
-incubator/site-author/ip-clearance/index.html</li>
-        <li>make a snapshot of the source code available for review</li>
-      </ul>
-      <p>This file should not last long in place before it is moved to the
-successful incubation area. The sole purpose is to ensure that IP is
-cleared so that the codebase can be merged into the ASF SVN.</p>
-      <p>For this file:</p>
-      <ul>
-        <li>substitute the XYZ name with the real one</li>
-        <li>fill in the description</li>
-        <li>fill in the work items</li>
-        <li>remove this notice</li>
-        <li>set a proper "title" element for the html page</li>
-      </ul>
-      <p>When a work item is done, place the date in the supplied space.</p>
-      <p><em>On the first edit of this file, please delete this notice.</em></p>
-      </section>
-      <pre>-----8-&lt;---- cut here -------8-&lt;---- cut here -------8-&lt;---- cut here-------8-&lt;----</pre>
-    </section>
-    <section id="maven-patch-plugin+Codebase+Intellectual+Property+%28IP%29+Clearance+Status">
-      <title>maven-patch-plugin Codebase Intellectual Property (IP) Clearance Status</title>
-    </section>
-    <section id="Description">
-      <title>Description</title>
-      <p>This is a plugin for Maven 2.x that applies patch files to an existing project's source. It currently does
-      this by delegation to the GNU patch utility.</p>
-    </section>
-    <section id="Project+info">
-      <title>Project info</title>
-      <ul>
-        <li>Which PMC will be responsible for the code</li>
-        <li>Apache Maven</li>
-      </ul>
-      <ul>
-        <li>Into which existing project/module</li>
-        <li>Maven (Plugins)</li>
-      </ul>
-      <ul>
-        <li>Officer or member managing donation:</li>
-        <li>Brett Porter</li>
-      </ul>
-      <p>
-        <em>Completed tasks are shown by the completion date (YYYY-MM-dd).</em>
-      </p>
-      <section id="Identify+the+codebase">
-        <title>Identify the codebase</title>
-        <table>
-          <tr>
-            <th>date</th>
-            <th>item</th>
-          </tr>
-          <tr>
-            <td>2007-06-08</td>
-            <td>If applicable, make sure that any associated name does not
-                already exist and is not already trademarked for an existing software
-                product.</td>
-          </tr>
-        </table>
-        <p>
-MD5 or SHA1 sum for donated software:  (<em>Note versioned software used to calculate sum in parentheses</em>).
-        </p>
-        <p>
-        72a2359b104c37e364ac5c0b573c1999  maven-patch-plugin.zip (md5sum; OS X 10.4.10, build 8R2232)
-        </p>
-        <section id="Copyright">
-          <title>Copyright</title>
-          <table>
-            <tr>
-              <th>date</th>
-              <th>item</th>
-            </tr>
-            <tr>
-              <td>....-..-..</td>
-              <td>Check and make sure that the papers that transfer rights to
-                  the ASF been received. It is only necessary to transfer
-                  rights for the package, the core code, and any new code
-                  produced by the project.</td>
-            </tr>
-            <tr>
-              <td>2007-07-05</td>
-              <td>Check and make sure that the files that have been donated
-                  have been updated to reflect the new ASF copyright.</td>
-            </tr>
-          </table>
-          <p>
-Identify name recorded for software grant: <em>the name of the grant as record 
-in the grants.txt document so that the grant can be easily identified</em> 
-          </p>
-        </section>
-        <section id="Verify+distribution+rights">
-          <title>Verify distribution rights</title>
-            <p>
-Corporations and individuals holding existing distribution rights:
-            </p>
-            <ul>
-<li>
-<em>For individuals, use the name as recorded on the committers page</em>
-</li>
-            </ul>
-          <table>
-            <tr>
-              <th>date</th>
-              <th>item</th>
-            </tr>
-            <tr>
-              <td>....-..-..</td>
-              <td>Check that all active committers have a signed CLA on
-                  record.</td>
-            </tr>
-            <tr>
-              <td>....-..-..</td>
-              <td>Remind active committers that they are responsible for
-                  ensuring that a Corporate CLA is recorded if such is
-                  required to authorize their contributions under their
-                  individual CLA.</td>
-            </tr>
-            <tr>
-              <td>....-..-..</td>
-              <td>Check and make sure that for all items included with the
-                  distribution that is not under the Apache license, we have
-                  the right to combine with Apache-licensed code and
-                  redistribute.</td>
-            </tr>
-            <tr>
-              <td>....-..-..</td>
-              <td>Check and make sure that all items depended upon by the
-                  project is covered by one or more of the following approved
-                  licenses: Apache, BSD, Artistic, MIT/X, MIT/W3C, MPL 1.1, or
-                  something with essentially the same terms.</td>
-            </tr>
-          </table>
-          <p>Generally, the result of checking off these items will be a
-             Software Grant, CLA, and Corporate CLA for ASF licensed code,
-             which must have no dependencies upon items whose licenses that
-             are incompatible with the Apache License.</p>
-        </section>
-      </section>
-      <section id="Organizational+acceptance+of+responsibility+for+the+project">
-        <title>Organizational acceptance of responsibility for the project
-</title>
-        <p>
-Related VOTEs: 
-        </p>
-        <ul>
-          <li><em>The VOTE thread accepting the donation may happen either 
-before or after IP clearance. Adoption by lazy concensus is acceptable but 
-not recommended.</em></li>
-        </ul>
-      </section>
-    </section>
-  </body>
-</document>
diff --git a/pom.xml b/pom.xml
index 45f87f0..d5ae90f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -16,8 +16,7 @@
     specific language governing permissions and limitations
     under the License.
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <parent>
     <groupId>org.apache.maven.plugins</groupId>
@@ -32,9 +31,9 @@
   <url>http://maven.apache.org</url>
  
   <scm>
-     <connection>scm:svn:http://svn.apache.org/repos/asf/maven/sandbox/trunk/plugins/maven-patch-plugin</connection>
-     <developerConnection>scm:svn:https://svn.apache.org/repos/asf/maven/sandbox/trunk/plugins/maven-patch-plugin</developerConnection>
-     <url>http://svn.apache.org/repos/asf/maven/sandbox/trunk/plugins/maven-patch-plugin</url>
+     <connection>scm:svn:http://svn.apache.org/repos/asf/maven/plugins/trunk/maven-patch-plugin</connection>
+     <developerConnection>scm:svn:https://svn.apache.org/repos/asf/maven/plugins/trunk/maven-patch-plugin</developerConnection>
+     <url>http://svn.apache.org/repos/asf/maven/plugins/trunk/maven-patch-plugin</url>
   </scm>
 
   <dependencies> 
@@ -57,6 +56,22 @@
       <scope>test</scope>
     </dependency>
   </dependencies>
+  
+  <build>
+    <pluginManagement>
+      <plugins>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-release-plugin</artifactId>
+          <version>2.0-beta-4</version>
+          <configuration>
+            <!-- TODO: Change this when the plugin graduates into /plugins! -->
+            <tagBase>https://svn.apache.org/repos/asf/maven/sandbox/tags</tagBase>
+          </configuration>
+        </plugin>
+      </plugins>
+    </pluginManagement>
+  </build>
 
   <profiles>
     <profile>
@@ -171,4 +186,4 @@
     </profile>
   </profiles>
   
-</project>
+</project>
\ No newline at end of file
diff --git a/src/main/java/org/apache/maven/plugin/patch/ApplyMojo.java b/src/main/java/org/apache/maven/plugin/patch/ApplyMojo.java
index aa2cf56..9302b87 100644
--- a/src/main/java/org/apache/maven/plugin/patch/ApplyMojo.java
+++ b/src/main/java/org/apache/maven/plugin/patch/ApplyMojo.java
@@ -1,18 +1,22 @@
 package org.apache.maven.plugin.patch;
 
 /*
- * Licensed 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
+ * 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
+ *   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.
- *
+ * 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.
  */
 
 import org.apache.maven.plugin.AbstractMojo;
diff --git a/src/site/apt/index.apt b/src/site/apt/index.apt
index e0b4ede..ad0912a 100644
--- a/src/site/apt/index.apt
+++ b/src/site/apt/index.apt
@@ -46,4 +46,7 @@
   you can take a look into the following examples:
 
   * {{{examples/single.html}How to patch from a single file.}}
+
   * {{{examples/multiple.html}How to patch from a directory of patches.}}
+
+  []
\ No newline at end of file
