diff --git a/pom.xml b/pom.xml
index b452aff..192a52f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -343,6 +343,7 @@
                 <goal>clean</goal>
                 <goal>site</goal>
               </goals>
+              <showErrors>true</showErrors>
             </configuration>
             <executions>
               <execution>
diff --git a/src/it/with-svnjava-maven-2.x/pom.xml b/src/it/with-svnjava-maven-2.x/pom.xml
index 23330a7..9625645 100644
--- a/src/it/with-svnjava-maven-2.x/pom.xml
+++ b/src/it/with-svnjava-maven-2.x/pom.xml
@@ -74,6 +74,7 @@
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-changelog-plugin</artifactId>
+        <version>@pom.version@</version>
         <configuration>
           <providerImplementations>
             <svn>javasvn</svn>
diff --git a/src/it/with-svnjava/invoker.properties b/src/it/with-svnjava-maven-3/invoker.properties
similarity index 100%
rename from src/it/with-svnjava/invoker.properties
rename to src/it/with-svnjava-maven-3/invoker.properties
diff --git a/src/it/with-svnjava/pom.xml b/src/it/with-svnjava-maven-3/pom.xml
similarity index 98%
rename from src/it/with-svnjava/pom.xml
rename to src/it/with-svnjava-maven-3/pom.xml
index 7c45b49..808fa48 100644
--- a/src/it/with-svnjava/pom.xml
+++ b/src/it/with-svnjava-maven-3/pom.xml
@@ -63,6 +63,7 @@
             <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-changelog-plugin</artifactId>
+              <version>@pom.version@</version>
               <configuration>
                 <issueIDRegexPattern>[A-Z]{2,}-\d+</issueIDRegexPattern>
                 <issueLinkUrl>http://jira.example.co.uk</issueLinkUrl>
diff --git a/src/it/with-svnjava/verify.groovy b/src/it/with-svnjava-maven-3/verify.groovy
similarity index 100%
rename from src/it/with-svnjava/verify.groovy
rename to src/it/with-svnjava-maven-3/verify.groovy
diff --git a/src/main/java/org/apache/maven/plugin/changelog/FileActivityComparator.java b/src/main/java/org/apache/maven/plugin/changelog/FileActivityComparator.java
index 27a30c6..c27342c 100644
--- a/src/main/java/org/apache/maven/plugin/changelog/FileActivityComparator.java
+++ b/src/main/java/org/apache/maven/plugin/changelog/FileActivityComparator.java
@@ -19,6 +19,7 @@
  * under the License.
  */
 
+import org.apache.commons.lang.StringUtils;
 import org.apache.maven.scm.ChangeFile;
 
 import java.util.Comparator;
@@ -34,7 +35,9 @@
 public class FileActivityComparator
     implements Comparator
 {
-    /** {@inheritDoc} */
+    /**
+     * {@inheritDoc}
+     */
     public int compare( Object o1, Object o2 )
         throws ClassCastException
     {
@@ -98,6 +101,16 @@
 
         String revision2 = getLatestRevision( list2 );
 
+        if ( revision1 == null )
+        {
+            return -1;
+        }
+
+        if ( revision2 == null )
+        {
+            return 1;
+        }
+
         return revision1.compareTo( revision2 );
     }
 
@@ -115,7 +128,7 @@
         {
             ChangeFile file = (ChangeFile) i.next();
 
-            if ( latest.length() == 0 )
+            if ( StringUtils.isNotBlank( latest) )
             {
                 latest = file.getRevision();
             }
