diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
index 0f8f224..0ac6207 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -1,5 +1,5 @@
             Apache Commons CLI
-                Version 1.3
+                Version 1.3.1
                Release Notes
 
 
@@ -9,13 +9,21 @@
 package. Commons CLI provides a simple API for working with the command line
 arguments and options.
 
-Commons CLI 1.3 is a bugfix and feature release and binary compatible with the
+Commons CLI 1.3.1 is a bug fix release and binary compatible with the
 previous versions, except for the OptionValidator class that is no longer public
-(change introduced in v1.2). Commons CLI 1.3 at least requires Java 5.0.
+(change introduced in v1.2). Commons CLI 1.3.1 at least requires Java 5.0.
 
 More information can be found on the project site at 
 http://commons.apache.org/cli.
 
+BUG FIXES
+=========
+
+o CLI-252: LongOpt falsely detected as ambiguous. Thanks to Simon Harrer.
+
+
+                Release Notes for version 1.3
+
 NOTES
 =====
 
diff --git a/pom.xml b/pom.xml
index 5faba14..4581978 100644
--- a/pom.xml
+++ b/pom.xml
@@ -24,7 +24,7 @@
   <modelVersion>4.0.0</modelVersion>
   <groupId>commons-cli</groupId>
   <artifactId>commons-cli</artifactId>
-  <version>1.4-SNAPSHOT</version>
+  <version>1.3.1-SNAPSHOT</version>
   <name>Apache Commons CLI</name>
 
   <inceptionYear>2002</inceptionYear>
@@ -166,7 +166,7 @@
     <maven.compiler.source>1.5</maven.compiler.source>
     <maven.compiler.target>1.5</maven.compiler.target>
     <commons.componentid>cli</commons.componentid>
-    <commons.release.version>1.3</commons.release.version>
+    <commons.release.version>1.3.1</commons.release.version>
     <commons.release.name>commons-cli-${commons.release.version}</commons.release.name>
     <commons.osgi.symbolicName>org.apache.commons.cli</commons.osgi.symbolicName>
     <commons.jira.id>CLI</commons.jira.id>
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 3dc6362..875cd11 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -22,7 +22,7 @@
   </properties>
   <body>
 
-    <release version="1.4" date="tba" description="tba">
+    <release version="1.3.1" date="tba" description="Bug fix release for 1.3">
       <action type="fix" dev="britter" issue="CLI-252" due-to="Simon Harrer">
         LongOpt falsely detected as ambiguous
       </action>
diff --git a/src/site/site.xml b/src/site/site.xml
index c203d73..b36c871 100644
--- a/src/site/site.xml
+++ b/src/site/site.xml
@@ -37,7 +37,7 @@
             <item name="Usage scenarios"      href="/usage.html"/>
             <item name="Option properties"    href="/properties.html"/>
             <item name="Javadoc (Current ${project.version})"        href="/apidocs/index.html"/>
-            <item name="Javadoc (1.3)"        href="/javadocs/api-release/index.html"/>
+            <item name="Javadoc (1.3.1)"      href="/javadocs/api-release/index.html"/>
         </menu>
 
     </body>
diff --git a/src/site/xdoc/download_cli.xml b/src/site/xdoc/download_cli.xml
index c53072b..21ceb75 100644
--- a/src/site/xdoc/download_cli.xml
+++ b/src/site/xdoc/download_cli.xml
@@ -95,32 +95,32 @@
       </p>
     </subsection>
     </section>
-    <section name="Apache Commons CLI 1.3 ">
+    <section name="Apache Commons CLI 1.3.1 ">
       <subsection name="Binaries">
         <table>
           <tr>
-              <td><a href="[preferred]/commons/cli/binaries/commons-cli-1.3-bin.tar.gz">commons-cli-1.3-bin.tar.gz</a></td>
-              <td><a href="http://www.apache.org/dist/commons/cli/binaries/commons-cli-1.3-bin.tar.gz.md5">md5</a></td>
-              <td><a href="http://www.apache.org/dist/commons/cli/binaries/commons-cli-1.3-bin.tar.gz.asc">pgp</a></td>
+              <td><a href="[preferred]/commons/cli/binaries/commons-cli-1.3.1-bin.tar.gz">commons-cli-1.3.1-bin.tar.gz</a></td>
+              <td><a href="http://www.apache.org/dist/commons/cli/binaries/commons-cli-1.3.1-bin.tar.gz.md5">md5</a></td>
+              <td><a href="http://www.apache.org/dist/commons/cli/binaries/commons-cli-1.3.1-bin.tar.gz.asc">pgp</a></td>
           </tr>
           <tr>
-              <td><a href="[preferred]/commons/cli/binaries/commons-cli-1.3-bin.zip">commons-cli-1.3-bin.zip</a></td>
-              <td><a href="http://www.apache.org/dist/commons/cli/binaries/commons-cli-1.3-bin.zip.md5">md5</a></td>
-              <td><a href="http://www.apache.org/dist/commons/cli/binaries/commons-cli-1.3-bin.zip.asc">pgp</a></td>
+              <td><a href="[preferred]/commons/cli/binaries/commons-cli-1.3.1-bin.zip">commons-cli-1.3.1-bin.zip</a></td>
+              <td><a href="http://www.apache.org/dist/commons/cli/binaries/commons-cli-1.3.1-bin.zip.md5">md5</a></td>
+              <td><a href="http://www.apache.org/dist/commons/cli/binaries/commons-cli-1.3.1-bin.zip.asc">pgp</a></td>
           </tr>
         </table>
       </subsection>
       <subsection name="Source">
         <table>
           <tr>
-              <td><a href="[preferred]/commons/cli/source/commons-cli-1.3-src.tar.gz">commons-cli-1.3-src.tar.gz</a></td>
-              <td><a href="http://www.apache.org/dist/commons/cli/source/commons-cli-1.3-src.tar.gz.md5">md5</a></td>
-              <td><a href="http://www.apache.org/dist/commons/cli/source/commons-cli-1.3-src.tar.gz.asc">pgp</a></td>
+              <td><a href="[preferred]/commons/cli/source/commons-cli-1.3.1-src.tar.gz">commons-cli-1.3.1-src.tar.gz</a></td>
+              <td><a href="http://www.apache.org/dist/commons/cli/source/commons-cli-1.3.1-src.tar.gz.md5">md5</a></td>
+              <td><a href="http://www.apache.org/dist/commons/cli/source/commons-cli-1.3.1-src.tar.gz.asc">pgp</a></td>
           </tr>
           <tr>
-              <td><a href="[preferred]/commons/cli/source/commons-cli-1.3-src.zip">commons-cli-1.3-src.zip</a></td>
-              <td><a href="http://www.apache.org/dist/commons/cli/source/commons-cli-1.3-src.zip.md5">md5</a></td>
-              <td><a href="http://www.apache.org/dist/commons/cli/source/commons-cli-1.3-src.zip.asc">pgp</a></td>
+              <td><a href="[preferred]/commons/cli/source/commons-cli-1.3.1-src.zip">commons-cli-1.3.1-src.zip</a></td>
+              <td><a href="http://www.apache.org/dist/commons/cli/source/commons-cli-1.3.1-src.zip.md5">md5</a></td>
+              <td><a href="http://www.apache.org/dist/commons/cli/source/commons-cli-1.3.1-src.zip.asc">pgp</a></td>
           </tr>
         </table>
       </subsection>
diff --git a/src/site/xdoc/index.xml b/src/site/xdoc/index.xml
index fa874d0..aa3717b 100644
--- a/src/site/xdoc/index.xml
+++ b/src/site/xdoc/index.xml
@@ -78,7 +78,8 @@
         The Javadoc API documents are available online:
       </p>
       <ul>
-        <li><a href="javadocs/api-release/index.html">CLI 1.3 (current release)</a></li>
+        <li><a href="javadocs/api-release/index.html">CLI 1.3.1 (current release)</a></li>
+        <li><a href="javadocs/api-1.3/index.html">CLI 1.3</a></li>
         <li><a href="javadocs/api-1.2/index.html">CLI 1.2</a></li>
         <li><a href="javadocs/api-1.1/index.html">CLI 1.1</a></li>
         <li><a href="javadocs/api-1.0/index.html">CLI 1.0</a></li>
@@ -91,10 +92,10 @@
 
     <section name="Releases">
       <p>
-        The latest version is v1.3. -
+        The latest version is v1.3.1 -
         <a href="http://commons.apache.org/cli/download_cli.cgi">Download now!</a>
         <br/>
-        The <a href="release_1_3.html">release notes</a> are also available.
+        The <a href="release_1_3_1.html">release notes</a> are also available.
       </p>
       <p>
         For previous releases, see the <a href="http://archive.apache.org/dist/commons/cli/">Apache Archive</a>.
diff --git a/src/site/xdoc/release_1_3_1.xml b/src/site/xdoc/release_1_3_1.xml
new file mode 100644
index 0000000..9a97fea
--- /dev/null
+++ b/src/site/xdoc/release_1_3_1.xml
@@ -0,0 +1,52 @@
+<?xml version="1.0"?>
+<!--
+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.
+-->
+<document>
+ <properties>
+  <title>Release notes for CLI 1.3.1</title>
+  <author email="dev@commons.apache.org">Commons Documentation Team</author>
+ </properties>
+<body>
+
+<section name="Release notes">
+
+  <p>These are the release notes for Commons CLI 1.3.1.</p>
+
+<source>
+INTRODUCTION:
+
+This document contains the release notes for this version of the Commons CLI
+package. Commons CLI provides a simple API for working with the command line
+arguments and options.
+
+Commons CLI 1.3.1 is a bug fix release and binary compatible with the
+previous versions, except for the OptionValidator class that is no longer public
+(change introduced in v1.2). Commons CLI 1.3.1 at least requires Java 5.0.
+
+More information can be found on the project site at
+http://commons.apache.org/cli.
+
+BUG FIXES
+=========
+
+o CLI-252: LongOpt falsely detected as ambiguous. Thanks to Simon Harrer.
+</source>
+
+</section>
+
+</body>
+</document>
