diff --git a/maven-patch-plugin.ip-clearance.xml b/maven-patch-plugin.ip-clearance.xml
deleted file mode 100644
index bbbe542..0000000
--- a/maven-patch-plugin.ip-clearance.xml
+++ /dev/null
@@ -1,247 +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>
-          <!-- FIXME: Check that this is the intended value, if this is indeed a field... -->
-          <!-- FIXME: Do we need to execute some sort of Code Grant document, via fax or other?? -->
-Identify name recorded for software grant: <em>CodeHaus</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>2007-06-08</td>
-              <td>Check that all active committers have a signed CLA on
-                  record.</td>
-            </tr>
-            <tr>
-              <td>2007-06-08</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>2007-06-08</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>2007-06-08</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/maven-patch-plugin.originals.zip b/maven-patch-plugin.originals.zip
deleted file mode 100644
index b49adc3..0000000
--- a/maven-patch-plugin.originals.zip
+++ /dev/null
Binary files differ
diff --git a/maven-patch-plugin.originals.zip.gpg b/maven-patch-plugin.originals.zip.gpg
deleted file mode 100644
index a4691f2..0000000
--- a/maven-patch-plugin.originals.zip.gpg
+++ /dev/null
Binary files differ
diff --git a/maven-patch-plugin.originals.zip.md5 b/maven-patch-plugin.originals.zip.md5
deleted file mode 100644
index 63a781a..0000000
--- a/maven-patch-plugin.originals.zip.md5
+++ /dev/null
@@ -1 +0,0 @@
-72a2359b104c37e364ac5c0b573c1999
diff --git a/maven-patch-plugin.originals.zip.md5.gpg b/maven-patch-plugin.originals.zip.md5.gpg
deleted file mode 100644
index fc5e0d5..0000000
--- a/maven-patch-plugin.originals.zip.md5.gpg
+++ /dev/null
Binary files differ
diff --git a/pom.xml b/pom.xml
index a1a93af..1c39fe5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,3 +1,21 @@
+<!--
+    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.
+-->
 <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>
@@ -13,9 +31,9 @@
   <url>http://maven.apache.org</url>
  
   <scm>
-     <connection>scm:svn:https://svn.apache.org/repos/asf/maven/sandbox/tags/maven-patch-plugin-1.0</connection>
+     <connection>scm:svn:http://svn.apache.org/repos/asf/maven/sandbox/tags/maven-patch-plugin-1.0</connection>
      <developerConnection>scm:svn:https://svn.apache.org/repos/asf/maven/sandbox/tags/maven-patch-plugin-1.0</developerConnection>
-     <url>https://svn.apache.org/repos/asf/maven/sandbox/tags/maven-patch-plugin-1.0</url>
+     <url>http://svn.apache.org/repos/asf/maven/sandbox/tags/maven-patch-plugin-1.0</url>
   </scm>
 
   <dependencies> 
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/faq.apt b/src/site/apt/faq.apt
index d3ea6fc..8d6baa8 100644
--- a/src/site/apt/faq.apt
+++ b/src/site/apt/faq.apt
@@ -29,22 +29,32 @@
 
 Frequently Asked Questions
 
+* Contents
+
   [[1]] {{{#1.} What would a patch plugin even be used for?}}
 
-* Answers
-
-  {1.} In certain environments direct source modification is not 
-   allowed so to make alterations to the source you need some patch 
-   application process.  This plugin seeks to address those situations.
-   
   [[2]] {{{#2.} Why won't this work on windows?}}
+  
+  []
+  
+* Questions
 
-* Answers
+** {1.} What would a patch plugin even be used for?
 
-  {1.} This patch wraps the gnu patch tool, which must be in your path
-    in order to function properly.  You might able to get this plugin working 
-    within cygwin.
+** Answer
+
+  In certain environments direct source modification is not 
+  allowed so to make alterations to the source you need some patch 
+  application process.  This plugin seeks to address those situations.
+   
+** {2.} Why won't this work on windows?
+
+** Answer
+
+  This patch wraps the gnu patch tool, which must be in your path
+  in order to function properly.  You might able to get this plugin working 
+  within cygwin.
     
-  {2.} If you would like to add windows support to this plugin, please do and 
-    submit modifications through the normal project mechansims.
+  If you would like to add windows support to this plugin, please do and 
+  submit modifications through the normal project mechansims.
       
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
