diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/utils/EcoreUtils.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/utils/EcoreUtils.java
index 28ae0d444a7518a75711bec0df7542ec472e31a9..09591a1c9ceb0cfe6ec9f366dffa282724186793 100644
--- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/utils/EcoreUtils.java
+++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/utils/EcoreUtils.java
@@ -60,7 +60,7 @@ import org.eclipse.emf.ecore.util.EcoreUtil.Copier;
  * @author ratiu
  * @author $Author: hoelzl $
  * @version $Rev: 18709 $
- * @ConQAT.Rating YELLOW Hash: DC361AE6E00DAE9F9178257FA915CCC4
+ * @ConQAT.Rating YELLOW Hash: A74FA7C1F289F4F252E353D4F2AEC64E
  */
 public class EcoreUtils {
 
@@ -308,6 +308,22 @@ public class EcoreUtils {
 		return null;
 	}
 
+	/**
+	 * Returns true if <code>candidateAncestor</code> is an ancestor of <code>startElement</code>.
+	 * 
+	 * An element is not an ancestor of itself!
+	 */
+	public static boolean isAncestor(EObject startElement, EObject candidateAncestor) {
+		EObject currentParent = startElement.eContainer();
+		while(currentParent != null) {
+			if(currentParent == candidateAncestor) {
+				return true;
+			}
+			currentParent = currentParent.eContainer();
+		}
+		return false;
+	}
+
 	/**
 	 * Posts a {@link Notification} with an event type ID outside the EMF
 	 * default notification IDs to cause UI refreshes.