Index: api/container/src/test/java/org/codehaus/cargo/container/internal/util/PropertyUtilsTest.java
===================================================================
--- api/container/src/test/java/org/codehaus/cargo/container/internal/util/PropertyUtilsTest.java	(revision 2441)
+++ api/container/src/test/java/org/codehaus/cargo/container/internal/util/PropertyUtilsTest.java	(working copy)
@@ -190,4 +190,12 @@
     {
         assertEquals("c:\test", PropertyUtils.escapeBackSlashesIfNotNull("c:\test"));
     }
+
+    public void testSplitEscapedSemicolons()
+    {
+        Properties inner = PropertyUtils.splitPropertiesOnSemicolon("foo=bar;baz=blorple\\;zot;glorg=gluux");
+        assertEquals(3, inner.size());
+        assertEquals("bar", inner.getProperty("foo"));
+        assertEquals("blorple;zot", inner.getProperty("baz"));
+    }
 }
Index: api/container/src/main/java/org/codehaus/cargo/container/internal/util/PropertyUtils.java
===================================================================
--- api/container/src/main/java/org/codehaus/cargo/container/internal/util/PropertyUtils.java	(revision 2441)
+++ api/container/src/main/java/org/codehaus/cargo/container/internal/util/PropertyUtils.java	(working copy)
@@ -21,9 +21,11 @@
 
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
+
 import java.util.Iterator;
 import java.util.Map;
 import java.util.Properties;
+import java.util.regex.Pattern;
 
 import org.apache.tools.ant.util.StringUtils;
 
@@ -98,7 +100,8 @@
     {
         Properties properties = new Properties();
 
-        String newLineSeparated = toSplit.replace(delimiter, '\n');
+        String newLineSeparated =
+            toSplit.replaceAll("([^\\\\])" + Pattern.quote(String.valueOf(delimiter)), "$1\n");
 
         try
         {
