Index: src/test/org/apache/maven/util/RepositoryTest.java
===================================================================
--- src/test/org/apache/maven/util/RepositoryTest.java	(revision 370872)
+++ src/test/org/apache/maven/util/RepositoryTest.java	(arbetskopia)
@@ -22,6 +22,27 @@
 public class RepositoryTest
     extends TestCase
 {
+    public void testGetScmConnectionSeparatorColonColon()
+    {
+        String con = "scm:cvs:pserver:anoncvs@cvs.apache.org:/home/cvspublic:module";
+        String separator = RepositoryUtils.getSCMConnectionSeparator( con );
+        assertEquals( "Wrong SCM connection separator", ":", separator );
+    }
+
+    public void testGetScmConnectionSeparatorColonVerticalBar()
+    {
+        String con = "scm:cvs|pserver|anoncvs@cvs.apache.org|/home/cvspublic|module";
+        String separator = RepositoryUtils.getSCMConnectionSeparator( con );
+        assertEquals( "Wrong SCM connection separator", "|", separator );
+    }
+
+    public void testGetScmConnectionSeparatorVerticalBarVerticalBar()
+    {
+        String con = "scm|svn|http://svn.apache.org/repos";
+        String separator = RepositoryUtils.getSCMConnectionSeparator( con );
+        assertEquals( "Wrong SCM connection separator", "|", separator );
+    }
+
     public void testSplitScmConnectionCvsPserver()
     {
         String con = "scm:cvs:pserver:anoncvs@cvs.apache.org:/home/cvspublic:module";
Index: src/main/org/apache/maven/changelog/ChangeLog.java
===================================================================
--- src/main/org/apache/maven/changelog/ChangeLog.java	(revision 370872)
+++ src/main/org/apache/maven/changelog/ChangeLog.java	(arbetskopia)
@@ -39,6 +39,7 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.maven.project.Developer;
+import org.apache.maven.util.RepositoryUtils;
 
 /**
  * Change log task. It uses a ChangeLogGenerator and ChangeLogParser to create
@@ -503,18 +504,18 @@
     {
         if ( clFactoryClass == null )
         {
-            //Connection Format: scm:<provider>[:<provider specific connection string>]
+            // Connection Format: scm<separator><provider>[<separator><provider specific connection string>]
             if ( ( connection == null ) || ( connection.length() < 5 )
-                || !connection.startsWith( "scm:" ) )
+                || ( !connection.startsWith( "scm:" ) && !connection.startsWith( "scm|" ) ) )
             {
                 LOG.warn( "Connection does not appear valid" );
             }
             else
             {
-                int iProviderEnd = connection.indexOf( ":", 4 );
+                int iProviderEnd = connection.indexOf( RepositoryUtils.getSCMConnectionSeparator( connection ) , 4 );
                 if ( iProviderEnd == -1 )
                 {
-                    // Connection = scm:<provider>
+                    // Connection = scm<separator><provider>
                     iProviderEnd = connection.length();
                 }
 
@@ -523,7 +524,7 @@
 
             if ( clFactoryClass == null )
             {
-                LOG.warn( 
+                LOG.warn(
                     "Could not derive factory from connection: using CVS (valid factories are: "
                     + FACTORIES.keySet() + ")" );
                 clFactoryClass = "org.apache.maven.cvslib.CvsChangeLogFactory";
Index: src/main/org/apache/maven/util/RepositoryUtils.java
===================================================================
--- src/main/org/apache/maven/util/RepositoryUtils.java	(revision 370872)
+++ src/main/org/apache/maven/util/RepositoryUtils.java	(arbetskopia)
@@ -32,6 +32,27 @@
 public final class RepositoryUtils
 {
     /**
+     * Get the separator used in an SCM string
+     * @param connection
+     * @return String that can be either ":" or "|"
+     */
+    public static String getSCMConnectionSeparator( String connection )
+    {
+        if ( connection == null )
+        {
+            throw new NullPointerException( "repository connection is null" );
+        }
+
+        if( connection.indexOf( "|" ) != -1 ) {
+            return "|";
+        }
+        else
+        {
+            return ":";
+        }
+    }
+
+    /**
      * Splits an SCM string into parts
      * @param connection
      * @return String[]

