diff --git a/org.jacoco.agent.rt/src/org/jacoco/agent/rt/CoverageTransformer.java b/org.jacoco.agent.rt/src/org/jacoco/agent/rt/CoverageTransformer.java
index b710f2e..6401898 100644
--- a/org.jacoco.agent.rt/src/org/jacoco/agent/rt/CoverageTransformer.java
+++ b/org.jacoco.agent.rt/src/org/jacoco/agent/rt/CoverageTransformer.java
@@ -64,12 +64,9 @@
 		this.instrumenter = new Instrumenter(runtime);
 		this.logger = logger;
 		// Class names will be reported in VM notation:
-		includes = new WildcardMatcher(
-				toWildcard(toVMName(options.getIncludes())));
-		excludes = new WildcardMatcher(
-				toWildcard(toVMName(options.getExcludes())));
-		exclClassloader = new WildcardMatcher(
-				toWildcard(options.getExclClassloader()));
+		includes = new WildcardMatcher(toVMName(options.getIncludes()));
+		excludes = new WildcardMatcher(toVMName(options.getExcludes()));
+		exclClassloader = new WildcardMatcher(options.getExclClassloader());
 		classFileDumper = new ClassFileDumper(options.getClassDumpDir());
 	}
 
@@ -122,16 +119,6 @@
 		!excludes.matches(classname);
 	}
 
-	private String toWildcard(final String src) {
-		if (src.indexOf('|') != -1) {
-			final IllegalArgumentException ex = new IllegalArgumentException(
-					"Usage of '|' as a list separator for JaCoCo agent options is deprecated and will not work in future versions - use ':' instead.");
-			logger.logExeption(ex);
-			return src.replace('|', ':');
-		}
-		return src;
-	}
-
 	private static String toVMName(final String srcName) {
 		return srcName.replace('.', '/');
 	}
diff --git a/org.jacoco.doc/docroot/doc/changes.html b/org.jacoco.doc/docroot/doc/changes.html
index 28b9493..70445e0 100644
--- a/org.jacoco.doc/docroot/doc/changes.html
+++ b/org.jacoco.doc/docroot/doc/changes.html
@@ -23,18 +23,25 @@
 <h3>New Features</h3>
 <ul>
   <li>Full support for Java 7 including INVOKEDYNAMIC as JaCoCo is now based
-      on ASM 4.0 (Issue #5).</li>
+      on ASM 4.0 (GitHub #5).</li>
 </ul>
 
 <h3>Fixed Bugs</h3>
 <ul>
   <li>Maven plugin should skip creation of report if the execution data file is
-      missing. This avoids appearance of stack traces in case when JVM was not forked,
-      e.g. if there are no tests to run (SF #3563431, GitHub #19).</li>
-  <li>Maven plugin should fail if unable to read execution data file or create report
-      (GitHub #19).</li>
+      missing. This avoids appearance of stack traces in case when JVM was not
+      forked, e.g. if there are no tests to run (SF #3563431, GitHub #19).</li>
+  <li>Maven plugin should fail if unable to read execution data file or create
+      report (GitHub #19).</li>
 </ul>
 
+<h3>API Changes</h3>
+<ul>
+  <li>Only colon as separator character supported in agent parameters. The
+      deprecated pipe character is no longer supported.</li>
+</ul>
+
+
 <h2>Release 0.5.10 (2012/08/31)</h2>
 
 <h3>Fixed Bugs</h3>
