diff --git a/src/main/java/org/apache/sling/distribution/packaging/impl/SimpleDistributionPackage.java b/src/main/java/org/apache/sling/distribution/packaging/impl/SimpleDistributionPackage.java
index 690140c..9d32113 100644
--- a/src/main/java/org/apache/sling/distribution/packaging/impl/SimpleDistributionPackage.java
+++ b/src/main/java/org/apache/sling/distribution/packaging/impl/SimpleDistributionPackage.java
@@ -40,7 +40,7 @@
 
     private final static String PACKAGE_START = "DSTRPCK:";
     private final static String DELIM = "|";
-    private final static String PATH_DELIM = ",";
+    private final static String PATH_DELIM = ":";
     private final long size;
 
     public SimpleDistributionPackage(DistributionRequest request, String type) {
diff --git a/src/test/java/org/apache/sling/distribution/packaging/impl/SimpleDistributionPackageTest.java b/src/test/java/org/apache/sling/distribution/packaging/impl/SimpleDistributionPackageTest.java
index 9e419bb..580be45 100644
--- a/src/test/java/org/apache/sling/distribution/packaging/impl/SimpleDistributionPackageTest.java
+++ b/src/test/java/org/apache/sling/distribution/packaging/impl/SimpleDistributionPackageTest.java
@@ -27,7 +27,6 @@
 import org.apache.sling.distribution.DistributionRequest;
 import org.apache.sling.distribution.DistributionRequestType;
 import org.apache.sling.distribution.SimpleDistributionRequest;
-import org.apache.sling.distribution.packaging.impl.SimpleDistributionPackage;
 import org.junit.Test;
 import org.mockito.Mockito;
 
@@ -45,7 +44,8 @@
  */
 public class SimpleDistributionPackageTest {
 
-    private static final String DSTRPCK_DELETE = "DSTRPCK:DELETE|/abc,/c";
+    private static final String DSTRPCK_DELETE = "DSTRPCK:DELETE|/abc:/c";
+    private static final String DSTRPCK_ITEM_WITH_COMMA_DELETE = "DSTRPCK:DELETE|/ab,c:/c";
 
     @Test
     public void testInvalid() {
@@ -75,6 +75,22 @@
         SimpleDistributionPackage pkg = SimpleDistributionPackage.fromStream(stream, "ADD");
         assertThat(pkg, nullValue());
     }
+
+    @Test
+    public void testCreatedAndReadPackagesEqualityWithCommaInName() throws Exception {
+        DistributionRequest request = new SimpleDistributionRequest(DistributionRequestType.DELETE, "/ab,c", "/c");
+        SimpleDistributionPackage createdPackage = new SimpleDistributionPackage(request, "VOID");
+        assertThat(createdPackage.toString(), equalTo(DSTRPCK_ITEM_WITH_COMMA_DELETE));
+        // Just to run the code
+        createdPackage.acquire();
+        createdPackage.release();
+        createdPackage.close();
+        createdPackage.delete();
+
+        SimpleDistributionPackage readPackage = SimpleDistributionPackage.fromStream(new ByteArrayInputStream(DSTRPCK_ITEM_WITH_COMMA_DELETE.getBytes()), "VOID");
+        assertNotNull(readPackage);
+        assertEquals(Arrays.toString(createdPackage.getInfo().getPaths()), Arrays.toString(readPackage.getInfo().getPaths()));
+    }
     
     @Test
     public void testCreatedAndReadPackagesEquality() throws Exception {
