diff --git a/src/main/java/org/apache/sling/feature/cpconverter/vltpkg/VaultPackageAssembler.java b/src/main/java/org/apache/sling/feature/cpconverter/vltpkg/VaultPackageAssembler.java
index 71c7613..05ee5a1 100644
--- a/src/main/java/org/apache/sling/feature/cpconverter/vltpkg/VaultPackageAssembler.java
+++ b/src/main/java/org/apache/sling/feature/cpconverter/vltpkg/VaultPackageAssembler.java
@@ -34,6 +34,8 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.util.HashMap;
+import java.util.HashSet;
 import java.util.Map;
 import java.util.Properties;
 import java.util.Set;
@@ -198,14 +200,18 @@
     }
 
     public void updateDependencies(Map<PackageId, Set<Dependency>> mutableContentsIds) {
+        Map<Dependency, Set<Dependency>> matches = new HashMap<>();
         for (Dependency dependency : dependencies) {
             for (java.util.Map.Entry<PackageId, Set<Dependency>> mutableContentId : mutableContentsIds.entrySet()) {
                 if (dependency.matches(mutableContentId.getKey())) {
-                    dependencies.remove(dependency);
-                    dependencies.addAll(mutableContentId.getValue());
+                    matches.put(dependency, mutableContentId.getValue());
                 }
             }
         }
+        for(java.util.Map.Entry<Dependency, Set<Dependency>>  match : matches.entrySet()) {
+            dependencies.remove(match.getKey());
+            dependencies.addAll(match.getValue());
+        }
     }
 
     public File createPackage() throws IOException {
