diff --git a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/command/ConnectCommand.java b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/command/ConnectCommand.java
index 22346d4734cfc52b1ac6b0b0566a9ac0f5aed716..7b64cb585c8c2279a4a1008c4bd11ff734d905a0 100644
--- a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/command/ConnectCommand.java
+++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/command/ConnectCommand.java
@@ -18,6 +18,7 @@ $Id$
 package org.fortiss.tooling.base.ui.editpart.command;
 
 import static org.fortiss.tooling.base.ui.utils.DragAndDropBaseUtils.setConnectionDragContextTarget;
+import static org.fortiss.tooling.kernel.utils.EcoreUtils.isAncestor;
 
 import org.eclipse.draw2d.geometry.Point;
 import org.eclipse.emf.ecore.EObject;
@@ -36,7 +37,7 @@ import org.fortiss.tooling.kernel.service.IConnectionCompositorService;
  * @author hoelzl
  * @author $Author$
  * @version $Rev$
- * @ConQAT.Rating GREEN Hash: F7D3596F1BC65D2B558627125DCB05AA
+ * @ConQAT.Rating YELLOW Hash: 22616D8ACADDDEB341A7C1A4B47C75D3
  */
 public class ConnectCommand extends Command {
 
@@ -89,12 +90,13 @@ public class ConnectCommand extends Command {
 		if(sourceParent == targetParent) {
 			return sourceParent;
 		}
-		if(sourceParent.eContainer() == targetParent) {
+		if(isAncestor(sourceParent, targetParent)) {
 			return targetParent;
 		}
 
-		if(sourceParent == targetParent.eContainer())
+		if(isAncestor(targetParent, sourceParent)) {
 			return sourceParent;
+		}
 
 		return sourceParent.eContainer();
 	}