diff --git a/status.xml b/status.xml
index d434fa6..a3db5f5 100644
--- a/status.xml
+++ b/status.xml
@@ -16,26 +16,22 @@
   limitations under the License.
 -->
 <!-- $Id$ -->
-<!DOCTYPE status PUBLIC "-//APACHE//DTD Status V1.3//EN"
-  "http://forrest.apache.org/dtd/status-v13.dtd">
+<!DOCTYPE status PUBLIC "-//APACHE//DTD Status V1.3//EN" "http://forrest.apache.org/dtd/status-v13.dtd">
 <status>
-	<developers>
-	  <!-- In alphabetical order (last name) -->
-	  <person name="Glenn Adams"       email="gadams@apache.org"        id="GA"/>
-	  <person name="Max Berger"        email="mayberger@apache.org"     id="MB"/>
-	  <person name="Chris Bowditch"    email="cbowditch@apache.org"     id="CB"/>
-	  <person name="Adrian Cumiskey"   email="acumiskey@apache.org"     id="AC"/>
-	  <person name="Christian Geisert" email="chrisg@apache.org"        id="CG"/>
-	  <person name="Vincent Hennebert" email="vhennebert@apache.org"    id="VH"/>
-	  <person name="Mehdi Houshmand"   email="mehdi@apache.org"         id="MH"/>
-	  <person name="Clay Leeds"        email="clay@apache.org"          id="CL"/>
-	  <person name="Jeremias Märki"    email="jeremias@apache.org"      id="JM"/>
-	  <person name="Cameron McCormack" email="cam@apache.org"           id="CM"/>
-	  <person name="Simon Pepping"     email="spepping@apache.org"      id="SP"/>
-	  <person name="Volunteer needed"  email="general@xmlgraphics.apache.org" id="open"/>
-	  
-	  <!-- All committers of Apache FOP and Apache Batik -->
-	</developers>
+  <developers>
+    <person name="Glenn Adams"       email="gadams@apache.org"        id="GA"/>
+    <person name="Max Berger"        email="mayberger@apache.org"     id="MB"/>
+    <person name="Chris Bowditch"    email="cbowditch@apache.org"     id="CB"/>
+    <person name="Adrian Cumiskey"   email="acumiskey@apache.org"     id="AC"/>
+    <person name="Christian Geisert" email="chrisg@apache.org"        id="CG"/>
+    <person name="Peter Hancock"     email="phancock@apache.org"      id="PH"/>
+    <person name="Vincent Hennebert" email="vhennebert@apache.org"    id="VH"/>
+    <person name="Mehdi Houshmand"   email="mehdi@apache.org"         id="MH"/>
+    <person name="Clay Leeds"        email="clay@apache.org"          id="CL"/>
+    <person name="Jeremias Märki"    email="jeremias@apache.org"      id="JM"/>
+    <person name="Cameron McCormack" email="cam@apache.org"           id="CM"/>
+    <person name="Simon Pepping"     email="spepping@apache.org"      id="SP"/>
+  </developers>
   <contexts>
     <context id="Code" title="Changes to the Code Base"/>
     <context id="Docs" title="Changes to Documentation"/>
@@ -45,12 +41,14 @@
       <action context="Code" dev="MH" type="update">
         Updated the JUnit tests to JUnit v4.
       </action>
-      <action context="Code" dev="MH" type="fix" fixes-bug="53599" due-to="JM and MH collaboration">
+      <action context="Code" dev="MH" type="fix" fixes-bug="53599" due-to="JM, MH">
         Performance improvement of DirectColorMode bitmap images
       </action>
       <action context="Code" dev="MH" type="fix" fixes-bug="53570" due-to="Robert Meyer">
         Set the systemID of the StreamSource within the DataURIResolver
       </action>
+    </release>
+    <release version="1.5" date="20 October 2012">
       <action context="Code" dev="GA" type="fix" fixes-bug="53408" due-to="Luis Bernardo, Matthias Reischenbacher">
         Add two PNG image loaders, one using internal XGC PNG code, the other using an externally supplied IDAT chunk (for raw decoding).
       </action>
@@ -60,7 +58,7 @@
       <action context="Code" dev="GA" type="update" fixes-bug="53327" due-to="Julien Aymé">
         Fix determination of use of precise vs fast formatting in order to fix regression with value 5.22534294505995E-4, decimals: 17, precision: 17.
       </action>
-      <action context="Code" dev="GA" type="fix" fixes-bug="53352">
+      <action context="Code" dev="GA" type="fix" fixes-bug="53352" importance="high">
         Upgrade to checkstyle-5.5 and ensure no warnings.
       </action>
       <action context="Code" dev="GA" type="fix" fixes-bug="51149" due-to="Luis Bernardo">
@@ -84,7 +82,7 @@
       <action context="Code" dev="GA" type="add" fixes-bug="43940" due-to="Julien Aymé">
         Add double format utility to improve thread safety and performance.
       </action>
-      <action context="Code" dev="GA" type="fix" fixes-bug="50497" due-to="Brian Carlson">
+      <action context="Code" dev="GA" type="fix" fixes-bug="50497" due-to="Brian Carlson" importance="high">
         Support rdf:resource attributes in XMP.
       </action>
       <action context="Code" dev="GA" type="fix" fixes-bug="47174" due-to="Sebastian Bazley">
@@ -97,23 +95,23 @@
         Minor build improvements to eliminate warning and parameterize junit formatting.
         Eliminate (5) deprecation warnings.
       </action>
-      <action context="Code" dev="PH" type="fix" fixes-bug="51911" due-to="JM and Mehdi Houshmand">
+      <action context="Code" dev="PH" type="fix" fixes-bug="51911" due-to="Mehdi Houshmand" importance="high">
         Support for T.4 Group 3 1D encoding.
       </action>
-      <action context="Code" dev="JM" type="fix" fixes-bug="51039" due-to="Florian Barbera Vila Bollain">
+      <action context="Code" dev="JM" type="fix" fixes-bug="51039" due-to="Florian Barbera, Vila Bollain">
         Fixed a bug formatting ISO 8601 dates with negative two-digit time zones.
       </action>
       <action context="Code" dev="JM" type="remove">
         Removed dependency on com.sun classes to achieve compatibility with Apache Harmony,
         OpenJDK and possibly other JVMs. 
       </action>
-      <action context="Code" dev="JM" type="remove">
+      <action context="Code" dev="JM" type="remove" importance="high">
         Removal of the deprecated <code>TextHandler.drawString(String, float, float)</code> method.
       </action>
       <action context="Code" dev="JM" type="update" fixes-bug="49703" due-to="Glenn Adams">
         Various code style fixes
       </action>
-      <action context="Code" dev="JM" type="fix" fixes-bug="49696" due-to="Joshua Marquart">
+      <action context="Code" dev="JM" type="fix" fixes-bug="49696" due-to="Joshua Marquart" importance="high">
         Allow to override priority when registering an ImageWriter on the ImageWriterRegistry.
       </action>
       <action context="Code" dev="JM" type="fix">
@@ -171,7 +169,7 @@
       <action context="Code" dev="MB" type="add">
         Support loading of ICC Profiles from PNG and JPEG when used through ImageIO.
       </action>
-       <action context="Code" dev="JM" type="fix">
+      <action context="Code" dev="JM" type="fix">
         Switched from linear RGB to sRGB for the fallback color model, in order to avoid trouble 
         with some images (CMYK TIFF, for example).
       </action>
@@ -261,99 +259,99 @@
       </action>
     </release>
     <release version="1.3" date="07 Feb 2008">
-		  <action context="Code" dev="JM" type="update" importance="high">
-		    Support for Java 1.3 has been dropped. Java 1.4 or later is required now.
-		  </action>
-		  <action context="Code" dev="JM" type="add" fixes-bug="44466" due-to="Adam Strzelecki">
-		    Image Loading: Support for passing in SAXSource instance.
-		  </action>
-		  <action context="Code" dev="JM" type="fix">
-		    Bugfix for ISO 8601 date formatting with negative time zones in the XMP package.
-		  </action>
-		  <action context="Code" dev="JM" type="add" importance="high">
-		    The package org.apache.xmlgraphics.image.loader was added. It contains a general
-		    image loading framework for various image formats (bitmap &amp; vector).
-		  </action>
-		  <action context="Code" dev="JM" type="add">
-		    XMP: Added support for structured properties.
-		  </action>
-		  <action context="Code" dev="JM" type="fix">
-		    Bugfix for XMP serialization: arrays with only one entry were serialized as
-		    simple property which could lead to information loss for merge operations.
-		  </action>
-		  <action context="Code" dev="JM" type="update">
-		    PostScript: Improved PSImageUtils by introducing the ImageEncoder interface and
-		    allowing for streams instead of byte arrays for data transfer which can lower
-		    memory consumption.
-		  </action>
-		  <action context="Code" dev="JM" type="fix">
-		    PostScript: Fixed %%EOF checking for nested documents.
-		  </action>
-		  <action context="Code" dev="JM" type="fix">
-		    PostScript: Improved robustness of DSC parsing (multi-line comments with no value
-		    on the first line don't cause crashes anymore, fallback for unparsable DSC comments).
-		  </action>
-		  <action context="Code" dev="JM" type="add">
-		    PostScript: Added classes for "BoundingBox" DSC comments.
-		  </action>
-		  <action context="Code" dev="JM" type="fix" fixes-bug="43120" due-to="Sergey Orlov">
-		    Fixed a possible NPE in the TIFF codec (in the TIFFImage constructor).
-		  </action>
-		  <action context="Code" dev="JM" type="add" fixes-bug="42980" due-to="Max Berger">
-		    Added support for classpath resources (find files in JAR files in the classpath
-		    using their MIME type)
-		  </action>
-		  <action context="Code" dev="CB" type="add" fixes-bug="43069" due-to="Adrian Cumiskey">
+      <action context="Code" dev="JM" type="update" importance="high">
+	Support for Java 1.3 has been dropped. Java 1.4 or later is required now.
+      </action>
+      <action context="Code" dev="JM" type="add" fixes-bug="44466" due-to="Adam Strzelecki">
+	Image Loading: Support for passing in SAXSource instance.
+      </action>
+      <action context="Code" dev="JM" type="fix">
+	Bugfix for ISO 8601 date formatting with negative time zones in the XMP package.
+      </action>
+      <action context="Code" dev="JM" type="add" importance="high">
+	The package org.apache.xmlgraphics.image.loader was added. It contains a general
+	image loading framework for various image formats (bitmap &amp; vector).
+      </action>
+      <action context="Code" dev="JM" type="add">
+	XMP: Added support for structured properties.
+      </action>
+      <action context="Code" dev="JM" type="fix">
+	Bugfix for XMP serialization: arrays with only one entry were serialized as
+	simple property which could lead to information loss for merge operations.
+      </action>
+      <action context="Code" dev="JM" type="update">
+	PostScript: Improved PSImageUtils by introducing the ImageEncoder interface and
+	allowing for streams instead of byte arrays for data transfer which can lower
+	memory consumption.
+      </action>
+      <action context="Code" dev="JM" type="fix">
+	PostScript: Fixed %%EOF checking for nested documents.
+      </action>
+      <action context="Code" dev="JM" type="fix">
+	PostScript: Improved robustness of DSC parsing (multi-line comments with no value
+	on the first line don't cause crashes anymore, fallback for unparsable DSC comments).
+      </action>
+      <action context="Code" dev="JM" type="add">
+	PostScript: Added classes for "BoundingBox" DSC comments.
+      </action>
+      <action context="Code" dev="JM" type="fix" fixes-bug="43120" due-to="Sergey Orlov">
+	Fixed a possible NPE in the TIFF codec (in the TIFFImage constructor).
+      </action>
+      <action context="Code" dev="JM" type="add" fixes-bug="42980" due-to="Max Berger">
+	Added support for classpath resources (find files in JAR files in the classpath
+	using their MIME type)
+      </action>
+      <action context="Code" dev="CB" type="add" fixes-bug="43069" due-to="Adrian Cumiskey">
         Application of the patch in Bugzilla 43069:
         New Macro safe-set-page-device which guards
-against the possibility of invalid/unsupported postscript key/values being
-issued to the implementing postscript page device
+        against the possibility of invalid/unsupported postscript key/values being
+        issued to the implementing postscript page device
       </action>		
-		</release>
-		<release version="1.2" date="21 July 2007">
-			<action context="Code" dev="JM" type="fix">
+    </release>
+    <release version="1.2" date="21 July 2007">
+      <action context="Code" dev="JM" type="fix">
         Fixed literal text string escaping in PSGenerator. Some characters were not properly
         escaped.
       </action>
-			<action context="Code" dev="JM" type="add" fixes-bug="42507" due-to="Adrian Cumiskey">
+      <action context="Code" dev="JM" type="add" fixes-bug="42507" due-to="Adrian Cumiskey">
         Added support for CMYK and GRAY color spaces for PSGenerator
         (moved there from PSGraphics2D).
       </action>
-			<action context="Code" dev="JM" type="fix">
+      <action context="Code" dev="JM" type="fix">
         Fixed the PDF/A namespace according to ISO-19005-1:2005/Cor.1:2007 and deprecated the
         use of the draft PDF/A namespace used by Adobe Acrobat 7.x.
       </action>
-		</release>
-		<release version="1.1" date="22 Dec 2006">
-			<action context="Code" dev="JM" type="add">
+    </release>
+    <release version="1.1" date="22 Dec 2006">
+      <action context="Code" dev="JM" type="add">
         Added the start of an XMP metadata framework.
       </action>
-			<action context="Code" dev="JM" type="fix">
+      <action context="Code" dev="JM" type="fix">
         Various fixes and improvements in the ImageWriter abstraction.
       </action>
-			<action context="Code" dev="JM" type="add">
+      <action context="Code" dev="JM" type="add">
         ImageWriter abstraction now supports writing multi-page formats like TIFF.
       </action>
-			<action context="Code" dev="JM" type="add">
+      <action context="Code" dev="JM" type="add">
         ImageWriter implementation for TIFF output using Image I/O API.
       </action>
-			<action context="Code" dev="JM" type="add" due-to="Max Berger">
+      <action context="Code" dev="JM" type="add" due-to="Max Berger">
         Default implementation for AbstractGraphics2D.drawText(ACI, float, float) so
         PSGraphics2D supports painting text using the AttributedCharacterIterator.
       </action>
-			<action context="Code" dev="JM" type="fix">
+      <action context="Code" dev="JM" type="fix">
         Bugfix: The generation of the PostScript setdash command was assuming that
         only integer values can be used but that isn't the case.
       </action>
-		</release>
-		<release version="1.0" date="17 Apr 2006">
-			<action context="Code" dev="JM" type="add">
+    </release>
+    <release version="1.0" date="17 Apr 2006">
+      <action context="Code" dev="JM" type="add">
         Initial release with several components from Batik and FOP: 
         Image codecs, Image writer abstraction, I/O classes, Java2D helpers, PostScript library 
         with Graphics2D implementation.
       </action>
-		</release>
-	</changes>
+    </release>
+  </changes>
   <todo>
     <actions>
       <action dev="JM" type="update" context="Code">
