diff --git a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/layout/auto/AutoLayoutMenu.java b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/layout/auto/AutoLayoutMenu.java
index f77c031bae8d008c294b5343caedaebbd79b9a96..2c00f94eec9049f86d3a1f8c5f9b3b1e0aaf1bd4 100644
--- a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/layout/auto/AutoLayoutMenu.java
+++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/layout/auto/AutoLayoutMenu.java
@@ -17,6 +17,8 @@ $Id$
 +--------------------------------------------------------------------------*/
 package org.fortiss.tooling.base.ui.layout.auto;
 
+import static org.fortiss.tooling.base.layout.LayoutKeyConstants.CONNECTOR_ANGLE;
+import static org.fortiss.tooling.base.utils.AngleUtils.getAngle;
 import static org.fortiss.tooling.kernel.utils.EcoreUtils.pickInstanceOf;
 
 import java.util.ArrayList;
@@ -28,6 +30,8 @@ import org.eclipse.jface.action.Action;
 import org.eclipse.jface.action.ActionContributionItem;
 import org.eclipse.jface.action.IContributionItem;
 import org.eclipse.jface.resource.ImageDescriptor;
+import org.fortiss.tooling.base.model.element.IConnection;
+import org.fortiss.tooling.base.model.element.IConnector;
 import org.fortiss.tooling.base.model.element.IHierarchicElement;
 import org.fortiss.tooling.base.model.layout.ILayoutedModelElement;
 import org.fortiss.tooling.base.ui.ToolingBaseUIActivator;
@@ -41,7 +45,7 @@ import org.fortiss.tooling.kernel.ui.extension.data.ContextMenuContextProvider;
  * @author barner
  * @author $Author$
  * @version $Rev$
- * @ConQAT.Rating YELLOW Hash: 2EC00DB461A5106CEB42DF8819159504
+ * @ConQAT.Rating YELLOW Hash: 76FF1ADFC034DE69815575B04BA534F0
  */
 public class AutoLayoutMenu implements IContextMenuContributor {
 
@@ -76,26 +80,58 @@ public class AutoLayoutMenu implements IContextMenuContributor {
 		}
 	}
 
+	/**
+	 * Predicate if the given {@link IHierarchicElement} contains an {@link IConnector} whose
+	 * position is specified using an angle, and that is connected to at least one incoming or
+	 * outgoing {@link IConnection}.
+	 */
+	private boolean hasConnectedConnectorWithAngle(IHierarchicElement element) {
+		for(IConnector connector : element.getConnectors()) {
+			if(getAngle((ILayoutedModelElement)connector, CONNECTOR_ANGLE) != null) {
+				return !connector.getIncoming().isEmpty() || !connector.getOutgoing().isEmpty();
+			}
+		}
+
+		return false;
+	}
+
 	/** {@inheritDoc} */
 	@Override
 	public List<IContributionItem> getContributedItems(EObject selection,
 			ContextMenuContextProvider contextProvider) {
-		if(selection instanceof IHierarchicElement) {
-			IHierarchicElement element = (IHierarchicElement)selection;
-			// Skip single top-level model element (e.g., AF3 component architecture)
-			if(element instanceof IProjectRootElement && element.getContainedElements().size() == 1) {
-				// There is exactly one child element
-				element = element.getContainedElements().get(0);
-			}
-			if(!pickInstanceOf(ILayoutedModelElement.class, element.getContainedElements())
-					.isEmpty()) {
-				List<IContributionItem> contributionItems = new ArrayList<IContributionItem>();
-				contributionItems.add(new ActionContributionItem(
-						new LaunchAutoLayoutAction(element)));
-				return contributionItems;
+
+		if(!(selection instanceof IHierarchicElement)) {
+			return Collections.emptyList();
+		}
+
+		IHierarchicElement element = (IHierarchicElement)selection;
+		// Skip single top-level model element (e.g., AF3 component architecture)
+		if(element instanceof IProjectRootElement && element.getContainedElements().size() == 1) {
+			// There is exactly one child element
+			element = element.getContainedElements().get(0);
+		}
+
+		// Check if model is empty
+		if(pickInstanceOf(ILayoutedModelElement.class, element.getContainedElements()).isEmpty()) {
+			return Collections.emptyList();
+		}
+
+		// Enable automatic layouter only for diagrams without rounded edges, which is the case if
+		// none of the positions of the connected connectors is specified using an angle (i.e., in
+		// particular also if the model does not contain any connectors, or none of the connectors
+		// is connected to a connection).
+		if(hasConnectedConnectorWithAngle(element)) {
+			return Collections.emptyList();
+		}
+		for(IHierarchicElement childElement : element.getContainedElements()) {
+			if(hasConnectedConnectorWithAngle(childElement)) {
+				return Collections.emptyList();
 			}
 		}
-		return Collections.emptyList();
+
+		List<IContributionItem> contributionItems = new ArrayList<IContributionItem>();
+		contributionItems.add(new ActionContributionItem(new LaunchAutoLayoutAction(element)));
+		return contributionItems;
 	}
 
 	/** {@inheritDoc} */