diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/actions/.ratings b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/actions/.ratings
index a4e3289f1b9b87df5c9294f4db92b111d4a89b01..1c97b0ac0a0b1ddb03f6ad45703670f1e22b3bf6 100644
--- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/actions/.ratings
+++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/actions/.ratings
@@ -1,6 +1,6 @@
 CopyAction.java cc58c9f52b8d0b8698a9905ffadff7c37976481b GREEN
 CutAction.java 6e963d94aeea85676beb38489748002b6d13346a GREEN
-DeleteAction.java 96fd45832167c555b407d7169fc7a3dd03a8fe8d GREEN
+DeleteAction.java 788b5df59525e069365c4f272b39e0892133e9b9 GREEN
 PasteAction.java f834f26660a664f138c19d82ace7b17ecc18603f GREEN
 RedoAction.java d91086533289a4175e7f5ee949b31a0edc86672a GREEN
 RenameAction.java f469d30cab3f692e2e0112c8f89c622ee0fa8db6 GREEN
diff --git a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/actions/DeleteAction.java b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/actions/DeleteAction.java
index 96fd45832167c555b407d7169fc7a3dd03a8fe8d..788b5df59525e069365c4f272b39e0892133e9b9 100644
--- a/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/actions/DeleteAction.java
+++ b/org.fortiss.tooling.kernel.ui/src/org/fortiss/tooling/kernel/ui/internal/actions/DeleteAction.java
@@ -236,10 +236,6 @@ public class DeleteAction extends EObjectActionBase<EObject> {
 	private static void doCompositorBasedDelete(List<EObject> targets) {
 		// Sort list of deletion targets such that object whose eContainer() is not contained in
 		// 'targets' are deleted first (e.g., free connectors in hierarchical element models).
-
-		List<EObject> deleteObjects = new ArrayList<EObject>();
-		List<EObject> disconnectObjects = new ArrayList<EObject>();
-
 		Set<EObject> targetSet = new HashSet<EObject>();
 		targetSet.addAll(targets);
 
@@ -264,21 +260,9 @@ public class DeleteAction extends EObjectActionBase<EObject> {
 
 		for(EObject target : sortedTargets) {
 			if(IElementCompositorService.getInstance().canDecompose(target)) {
-				deleteObjects.add(target);
+				IElementCompositorService.getInstance().decompose(target);
 			} else if(IConnectionCompositorService.getInstance().canDisconnect(target)) {
-				disconnectObjects.add(target);
-			}
-
-			if(!deleteObjects.isEmpty()) {
-				for(int index = 0; index < deleteObjects.size(); index++) {
-					IElementCompositorService.getInstance().decompose(deleteObjects.get(index));
-				}
-			}
-
-			if(!disconnectObjects.isEmpty()) {
-				for(int index = 0; index < disconnectObjects.size(); index++) {
-					IElementCompositorService.getInstance().decompose(disconnectObjects.get(index));
-				}
+				IConnectionCompositorService.getInstance().disconnect(target);
 			}
 		}
 	}