diff --git a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/extension/base/ContextMenuSubMenuContributorBase.java b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/extension/base/ContextMenuSubMenuContributorBase.java
index 0210c8c5cec08f0e3065b5498e50155ccc385f79..524436b7f7511dcbb56bfa06574ca767ece20d4c 100644
--- a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/extension/base/ContextMenuSubMenuContributorBase.java
+++ b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/extension/base/ContextMenuSubMenuContributorBase.java
@@ -54,7 +54,7 @@ import org.fortiss.tooling.kernel.ui.service.IContextMenuService;
  * @author trachtenherz
  * @author $Author: hoelzl $
  * @version $Rev: 18709 $
- * @ConQAT.Rating YELLOW Hash: 6D37231B2529C38F9E563EDCFD4E39C6
+ * @ConQAT.Rating YELLOW Hash: B5924C3A5FB721FD77B588B6377C35B4
  */
 public abstract class ContextMenuSubMenuContributorBase<T extends EObject> implements
 		IContextMenuContributor {
@@ -105,12 +105,16 @@ public abstract class ContextMenuSubMenuContributorBase<T extends EObject> imple
 		int i = 0;
 		for(Action a : actions) {
 			if(hintItems[i] != null &&
-					hintItems[i].getHint() == MenuStructureHint.SUBMENU_START_BEFORE) {
+					(hintItems[i].getHint() == MenuStructureHint.SUBMENU_START_BEFORE || hintItems[i]
+							.getHint() == MenuStructureHint.SUBMENU_START_BEFORE_SEPARATOR_BEFORE)) {
 				if(subMenu != null) {
 					// If there is a previously opened sub-menu then finish processing it because we
 					// use one-level sub-menus.
 					menu.add(subMenu);
 				}
+				if(hintItems[i].getHint() == MenuStructureHint.SUBMENU_START_BEFORE_SEPARATOR_BEFORE) {
+					menu.add(new Separator());
+				}
 				final String subMenuLabel;
 				if(hintItems[i] instanceof MenuStructureHintSubMenuStart) {
 					subMenuLabel = ((MenuStructureHintSubMenuStart)hintItems[i]).getSubMenuLabel();
@@ -202,7 +206,14 @@ public abstract class ContextMenuSubMenuContributorBase<T extends EObject> imple
 		 */
 		SUBMENU_START_BEFORE,
 		/** End sub-menu after current item. */
-		SUBMENU_END_AFTER;
+		SUBMENU_END_AFTER,
+		/**
+		 * Insert separator and begin sub-menu before current.
+		 * 
+		 * @see #SEPARATOR_BEFORE
+		 * @see #SUBMENU_START_BEFORE
+		 */
+		SUBMENU_START_BEFORE_SEPARATOR_BEFORE;
 
 		/** {@inheritDoc} */
 		@Override
@@ -231,6 +242,11 @@ public abstract class ContextMenuSubMenuContributorBase<T extends EObject> imple
 		/** @see #getSubMenuLabel() */
 		private String subMenuLabel;
 
+		/**
+		 * @see #getHint()
+		 */
+		private MenuStructureHint menuStructureHint;
+
 		/**
 		 * Creates a {@link MenuStructureHintSubMenuStart} with default sub-menu label text.
 		 * 
@@ -244,7 +260,22 @@ public abstract class ContextMenuSubMenuContributorBase<T extends EObject> imple
 		 * Creates a {@link MenuStructureHintSubMenuStart} with given sub-menu label text.
 		 */
 		public MenuStructureHintSubMenuStart(String subMenuLabel) {
+			this(subMenuLabel, false);
+		}
+
+		/**
+		 * Creates a {@link MenuStructureHintSubMenuStart} with given sub-menu label text.
+		 * If {@code separatorBefore} is true than {@link #getHint()} will later return
+		 * {@link MenuStructureHint#SUBMENU_START_BEFORE_SEPARATOR_BEFORE} otherwise
+		 * {@link MenuStructureHint#SUBMENU_START_BEFORE}.
+		 */
+		public MenuStructureHintSubMenuStart(String subMenuLabel, boolean separatorBefore) {
 			this.subMenuLabel = subMenuLabel;
+			if(separatorBefore) {
+				menuStructureHint = MenuStructureHint.SUBMENU_START_BEFORE_SEPARATOR_BEFORE;
+			} else {
+				menuStructureHint = MenuStructureHint.SUBMENU_START_BEFORE;
+			}
 		}
 
 		/** Returns the sub-menu label text. */
@@ -255,11 +286,14 @@ public abstract class ContextMenuSubMenuContributorBase<T extends EObject> imple
 		/**
 		 * {@inheritDoc}
 		 * 
-		 * @return MenuStructureHint.SUBMENU_START_BEFORE
+		 * @return {@link MenuStructureHint#SUBMENU_START_BEFORE} or
+		 *         {@link MenuStructureHint#SUBMENU_START_BEFORE_SEPARATOR_BEFORE}, depending on the
+		 *         initialization parameters used for the constructor (see
+		 *         {@link #MenuStructureHintSubMenuStart(String, boolean)}.
 		 */
 		@Override
 		public MenuStructureHint getHint() {
-			return MenuStructureHint.SUBMENU_START_BEFORE;
+			return this.menuStructureHint;
 		}
 
 		/** {@inheritDoc} */