diff --git a/CHANGES.txt b/CHANGES.txt
index 38676dd..ffe4b7d 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,39 +1,7 @@
-Apache ManifoldCF Plugin for SharePoint 2010 change Log
+Apache ManifoldCF Plugin for SharePoint 2013 change Log
 $Id$
 
-======================= 0.5-dev =====================
-
-======================= Release 0.4 =====================
-
-CONNECTORS-813: Include a URL that should be used to send to the
-output connector for a given list item.
-
-======================= Release 0.3 =====================
-
-CONNECTORS-772: SharePoint on AWS does not permit using the
-URL to locate the site.
-(Dmitry Goldenberg, Karl Wright)
-
-CONNECTORS-754: Remove dependency on Permissions.asmx.
-(Will Parkinson, Karl Wright)
-
-CONNECTORS-758: Change log output to go to trace log.
-(Christian M. Rieck, Will Parkinson, Karl Wright)
-
-======================= Release 0.2 =====================
-
-CONNECTORS-534: Repackage plugins to have a true binary release,
-with appropriate DEPENDENCIES.txt, README's etc.
-(Karl Wright)
-
-======================= Release 0.1 =====================
-
-CONNECTORS-492: Add a GetListItems() method to support obtaining
-documents without limits on count.
-(Ahmet Arslan, Piergiorgio Lucidi, Joe Becknell, Karl Wright)
-
-CONNECTORS-498: Remove ToLower() since it is locale-specific.
-(Ahmet Arslan, Karl Wright)
+======================= 0.1-dev =====================
 
 Initial commit.
 (Karl Wright)
diff --git a/DEPENDENCIES.txt b/DEPENDENCIES.txt
index d37abb2..d0eda02 100644
--- a/DEPENDENCIES.txt
+++ b/DEPENDENCIES.txt
@@ -1,10 +1,10 @@
-Apache ManifoldCF Plugin for SharePoint 2010 requires
+Apache ManifoldCF Plugin for SharePoint 2013 requires
 ----------------------------------------------------
 * JRE 1.5 or above
 * .NET Framework 1.0 and .NET Framework 3.0
-* Microsoft.SharePoint.dll for SharePoint version 4.0 (2010)
+* Microsoft.SharePoint.dll for SharePoint version 5.0 (2013)
 
-For building Apache ManifoldCF SharePoint 2010 Plugin:
+For building Apache ManifoldCF SharePoint 2013 Plugin:
 ----------------------------------------------------
 
 * See README.txt
diff --git a/NOTICE.txt b/NOTICE.txt
index 9c0ff7b..e84e4f8 100644
--- a/NOTICE.txt
+++ b/NOTICE.txt
@@ -1,5 +1,5 @@
-Apache ManifoldCF Plugin for SharePoint 2010 
-Copyright 2010-2013 The Apache Software Foundation
+Apache ManifoldCF Plugin for SharePoint 2013 
+Copyright 2013-2013 The Apache Software Foundation
 
 This product includes software developed by
 The Apache Software Foundation (http://www.apache.org/).
diff --git a/README.txt b/README.txt
index b79f8bf..033c0bd 100644
--- a/README.txt
+++ b/README.txt
@@ -14,14 +14,14 @@
 # limitations under the License.
 
 
-Instructions for Building Apache ManifoldCF Plugin for SharePoint 2010 from Source
+Instructions for Building Apache ManifoldCF Plugin for SharePoint 2013 from Source
 -------------------------------------------------------------------------------
 
 This source MUST be built on a Windows system.
 
 1. Make sure you have .NET Framework 1.0 and .NET Framework 3.0 installed.
 
-2. Place the Microsoft SharePoint 2010 dll in the right place, you can take this file from C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\UserCode\assemblies.  There are several places
+2. Place the Microsoft SharePoint 2013 dll in the right place, you can take this file from C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\UserCode\assemblies.  There are several places
    that will work.  The preferred place is:
    
    C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.5\Microsoft.SharePoint.dll
@@ -40,16 +40,16 @@
    build.xml file), and type "ant" for directions.
 
 
-Some Files Included In Apache ManifoldCF Plugin for SharePoint 2010 Distributions
+Some Files Included In Apache ManifoldCF Plugin for SharePoint 2013 Distributions
 ------------------------------------------------------------------------------
 
 dist/MetaCarta.SharePoint.MCPermissionsService.wsp
-  The Apache ManifoldCF Plugin for SharePoint 2010 assembly.
+  The Apache ManifoldCF Plugin for SharePoint 2013 assembly.
 
 Licensing
 ---------
 
-Apache ManifoldCF SharePoint 2010 Plugin is licensed under the
+Apache ManifoldCF SharePoint 2013 Plugin is licensed under the
 Apache License 2.0. See the files called LICENSE.txt and NOTICE.txt
 for more information.
 
@@ -78,7 +78,7 @@
 The following provides more details on the included software that
 may be subject to export controls on cryptographic software:
 
-  The Apache ManifoldCF Plugin for SharePoint 2010 
+  The Apache ManifoldCF Plugin for SharePoint 2013 
   does not include any implementation or usage of cryptographic software
   at this time.
   
diff --git a/build.xml b/build.xml
index 225e53f..8370460 100644
--- a/build.xml
+++ b/build.xml
@@ -15,11 +15,11 @@
  limitations under the License.
 -->
 
-<project name="mcf-sharepoint-2010-plugin" default="help">
+<project name="mcf-sharepoint-2013-plugin" default="help">
 
     <target name="clean">
         <delete>
-	<fileset dir="." includes="apache-manifoldcf-sharepoint-2010-plugin-*"/>
+	<fileset dir="." includes="apache-manifoldcf-sharepoint-2013-plugin-*"/>
         </delete>
         <delete file="webservice/Package/*.wsp"/>
         <delete file="webservice/setup.inf"/>
@@ -53,12 +53,12 @@
     <target name="build" depends="deliver"/>
     
     <target name="set-version">
-        <property name="release-version" value="0.5-dev"/>
+        <property name="release-version" value="0.1-dev"/>
     </target>
       
     <target name="create-source-zip" depends="set-version">
-      <zip destfile="apache-manifoldcf-sharepoint-2010-plugin-${release-version}-src.zip" update="false">
-        <zipfileset dir="." prefix="apache-manifoldcf-sharepoint-2010-plugin-${release-version}">
+      <zip destfile="apache-manifoldcf-sharepoint-2013-plugin-${release-version}-src.zip" update="false">
+        <zipfileset dir="." prefix="apache-manifoldcf-sharepoint-2013-plugin-${release-version}">
           <exclude name="/wsdls/Permissions.wsdl"/>
           <exclude name="/webservice/Web References/SPPermissionsService/Permissions.wsdl"/>
           <exclude name="/webservice/Package/*.wsp"/>
@@ -67,14 +67,14 @@
           <exclude name="/webservice/setup.rpt"/>
           <exclude name="/webservice/obj/"/>
           <exclude name="/dist/"/>
-          <exclude name="/apache-manifoldcf-sharepoint-2010-plugin-*"/>
+          <exclude name="/apache-manifoldcf-sharepoint-2013-plugin-*"/>
         </zipfileset>
       </zip>
     </target>
       
     <target name="create-source-tar" depends="set-version">
-      <tar destfile="apache-manifoldcf-sharepoint-2010-plugin-${release-version}-src.tar.gz" compression="gzip" longfile="gnu">
-        <tarfileset dir="." prefix="apache-manifoldcf-sharepoint-2010-plugin-${release-version}">
+      <tar destfile="apache-manifoldcf-sharepoint-2013-plugin-${release-version}-src.tar.gz" compression="gzip" longfile="gnu">
+        <tarfileset dir="." prefix="apache-manifoldcf-sharepoint-2013-plugin-${release-version}">
           <exclude name="/wsdls/Permissions.wsdl"/>
           <exclude name="/webservice/Web References/SPPermissionsService/Permissions.wsdl"/>
           <exclude name="/webservice/Package/*.wsp"/>
@@ -83,21 +83,21 @@
           <exclude name="/webservice/setup.rpt"/>
           <exclude name="/webservice/obj/"/>
           <exclude name="/dist/"/>
-          <exclude name="/apache-manifoldcf-sharepoint-2010-plugin-*"/>
+          <exclude name="/apache-manifoldcf-sharepoint-2013-plugin-*"/>
         </tarfileset>
       </tar>
     </target>
 
     <target name="create-bin-zip" depends="build,set-version">
-      <zip destfile="apache-manifoldcf-sharepoint-2010-plugin-${release-version}-bin.zip" update="false">
-        <zipfileset dir="dist" prefix="apache-manifoldcf-sharepoint-2010-plugin-${release-version}">
+      <zip destfile="apache-manifoldcf-sharepoint-2013-plugin-${release-version}-bin.zip" update="false">
+        <zipfileset dir="dist" prefix="apache-manifoldcf-sharepoint-2013-plugin-${release-version}">
         </zipfileset>
       </zip>
     </target>
       
     <target name="create-bin-tar" depends="build,set-version">
-      <tar destfile="apache-manifoldcf-sharepoint-2010-plugin-${release-version}-bin.tar.gz" compression="gzip" longfile="gnu">
-        <tarfileset dir="dist" prefix="apache-manifoldcf-sharepoint-2010-plugin-${release-version}">
+      <tar destfile="apache-manifoldcf-sharepoint-2013-plugin-${release-version}-bin.tar.gz" compression="gzip" longfile="gnu">
+        <tarfileset dir="dist" prefix="apache-manifoldcf-sharepoint-2013-plugin-${release-version}">
         </tarfileset>
       </tar>
     </target>
@@ -106,7 +106,7 @@
 
     <target name="help">
         <echo level="info">
-Apache ManifoldCF SharePoint 2010 Plugin build file.  Use this
+Apache ManifoldCF SharePoint 2013 Plugin build file.  Use this
 file to build the plugin distributables.
 
 Useful targets are:
diff --git a/dist-license/DEPENDENCIES.txt b/dist-license/DEPENDENCIES.txt
index 59a86e6..dccd058 100644
--- a/dist-license/DEPENDENCIES.txt
+++ b/dist-license/DEPENDENCIES.txt
@@ -1,8 +1,8 @@
-Apache ManifoldCF Plugin for SharePoint 2010 requires
+Apache ManifoldCF Plugin for SharePoint 2013 requires
 ----------------------------------------------------
-* Microsoft SharePoint version 4.0 (2010)
+* Microsoft SharePoint version 5.0 (2013)
 
-For running Apache ManifoldCF Plugin for SharePoint 2010:
+For running Apache ManifoldCF Plugin for SharePoint 2013:
 -------------------------------------------------------
 
 * See README.txt
diff --git a/dist-license/NOTICE.txt b/dist-license/NOTICE.txt
index c5d1b65..ab94699 100644
--- a/dist-license/NOTICE.txt
+++ b/dist-license/NOTICE.txt
@@ -1,5 +1,5 @@
-Apache ManifoldCF Plugin for SharePoint 2010
-Copyright 2010-2013 The Apache Software Foundation
+Apache ManifoldCF Plugin for SharePoint 2013
+Copyright 2013-2013 The Apache Software Foundation
 
 This product includes software developed by
 The Apache Software Foundation (http://www.apache.org/).
diff --git a/dist-license/README.txt b/dist-license/README.txt
index cf89454..9d691f2 100644
--- a/dist-license/README.txt
+++ b/dist-license/README.txt
@@ -14,13 +14,13 @@
 # limitations under the License.
 
 
-Instructions for running Apache ManifoldCF Plugin for SharePoint 2010
+Instructions for running Apache ManifoldCF Plugin for SharePoint 2013
 ------------------------------------------------------------------
 
 This web service is deployed using the SharePoint stsadm utility.  There are several included batch files: setup.bat (for first-time installation),
 and upgrade.bat (for subsequent installations).  There is also a remove.bat, in case there is a need to uninstall the web service.
 
-Note: This web service is only functional on SharePoint 4.0 (2010) systems.  Do not install on SharePoint 2.0 (2003) or 3.0 (2007) systems.
+Note: This web service is only functional on SharePoint 5.0 (2013) systems.  Do not install on SharePoint 2.0 (2003), 3.0 (2007), or 4.0 (2010) systems.
 
 
 First-time installation
@@ -55,16 +55,16 @@
    modify the remove.bat file first for it to be able to locate stsadm.exe.
 
 
-Some files included in Apache ManifoldCF Plugin for SharePoint 2010 distributions
+Some files included in Apache ManifoldCF Plugin for SharePoint 2013 distributions
 -----------------------------------------------------------------------------
 
 dist/MetaCarta.SharePoint.MCPermissionsService.wsp
-  The Apache ManifoldCF Plugin for SharePoint 2010 assembly.
+  The Apache ManifoldCF Plugin for SharePoint 2013 assembly.
 
 Licensing
 ---------
 
-Apache ManifoldCF Plugin for SharePoint 2010 is licensed under the
+Apache ManifoldCF Plugin for SharePoint 2013 is licensed under the
 Apache License 2.0. See the files called LICENSE.txt and NOTICE.txt
 for more information.
 
@@ -93,7 +93,7 @@
 The following provides more details on the included software that
 may be subject to export controls on cryptographic software:
 
-  The Apache ManifoldCF Plugin for SharePoint 2010
+  The Apache ManifoldCF Plugin for SharePoint 2013
   does not include any implementation or usage of cryptographic software
   at this time.
   
