diff --git a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/editor/fx/controller/.ratings b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/editor/fx/controller/.ratings
index 81c521d0961793fbdd012fb4febeb227ec53a24c..cea49252dbf4bd3d1690aacb10a05fff5a25be2b 100644
--- a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/editor/fx/controller/.ratings
+++ b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/editor/fx/controller/.ratings
@@ -1,10 +1,9 @@
-ContextMenuUtil.java 6d270ba4c239c35ee487192427d02797e73ee109 GREEN
 CurvedLinkLayoutedContentAnchorangeController.java e22faedbe98c3dab660b5d2df8ebd004e116c5ba GREEN
 CurvedLinkLayoutedDiagramAnchorangeController.java f2e5e2a7cc9b6a070871e200e57371286bb15222 GREEN
-EObjectDiagramController.java 18cbb2f092409adeb728233dae6e084faf357d6d GREEN
-EObjectEllipticResizableContentControllerBase.java 958d3856daf5337cd75d0a6f163a27dcc8717160 GREEN
+EObjectDiagramController.java 27b008c02e174d66184ba8ad76ae81b082f1069f GREEN
+EObjectEllipticResizableContentControllerBase.java f12e8f5a646a23fe428ed4768bf041c8b885ec81 GREEN
 EObjectModelChangeProvider.java f4b60cebb088a5c81ca92a41614e1a5d40030502 GREEN
-EObjectRectangularResizableContentControllerBase.java 7cbc3e89b7b74106d56b8b4f845087e96e13d109 GREEN
+EObjectRectangularResizableContentControllerBase.java cde6c13659611d927691c03ecd2621cff2414b03 GREEN
 KernelServiceBasedModelChangeProviderBase.java 8d1f8ef79ecd383ff74e5a2bbcf24345aabe70af GREEN
 LayoutedContentAnchorageController.java 83f066a151dd2984c4bef64daf8165a0cd53b00f GREEN
 LayoutedCurveLinkBendPointController.java d963a5e227de7bd8ba910c733df2ac7acf4fa1fa GREEN
@@ -13,5 +12,5 @@ LayoutedEllipticResizableContentController.java 1c50e80121512de7ae1f2ba09e0e1f4d
 LayoutedLineLinkBendPointController.java f49c994a0c90612c44ec83d42cf858e476662e1f GREEN
 LayoutedLinkBendPointController.java d06736b49b6ac9a073237b989895469891500e7f GREEN
 LayoutedRectangularResizableContentController.java 341f4a7da0d69360d7026af6d9b3d44dfd7d9bb1 GREEN
-ModelElementFXEditorUIProviderBase.java b81bf7fc945d40f1f842876f07ba70799ab65f6d GREEN
+ModelElementFXEditorUIProviderBase.java 6bdd31d033228315e99c973b4986cdabc135ec9f GREEN
 NamedCommentedLayoutModelChangeProvider.java 223e82c1b1cba842f6fae115182f5d0c6acb44b0 GREEN
diff --git a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/editor/fx/controller/EObjectDiagramController.java b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/editor/fx/controller/EObjectDiagramController.java
index 18cbb2f092409adeb728233dae6e084faf357d6d..27b008c02e174d66184ba8ad76ae81b082f1069f 100644
--- a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/editor/fx/controller/EObjectDiagramController.java
+++ b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/editor/fx/controller/EObjectDiagramController.java
@@ -15,10 +15,10 @@ package org.fortiss.tooling.base.ui.editor.fx.controller;
 
 import static java.lang.Math.max;
 import static java.util.Objects.requireNonNull;
-import static org.fortiss.tooling.base.ui.editor.fx.controller.ContextMenuUtil.createAutoLayoutMenu;
-import static org.fortiss.tooling.base.ui.editor.fx.controller.ContextMenuUtil.createDisplayMenu;
-import static org.fortiss.tooling.base.ui.editor.fx.controller.ContextMenuUtil.createElementCompositionContext;
-import static org.fortiss.tooling.base.ui.editor.fx.controller.ContextMenuUtil.createPrototypeMenu;
+import static org.fortiss.tooling.base.ui.utils.ContextMenuUtils.createAutoLayoutMenu;
+import static org.fortiss.tooling.base.ui.utils.ContextMenuUtils.createDisplayMenu;
+import static org.fortiss.tooling.base.ui.utils.ContextMenuUtils.createElementCompositionContext;
+import static org.fortiss.tooling.base.ui.utils.ContextMenuUtils.createPrototypeMenu;
 import static org.fortiss.tooling.base.ui.utils.FXDNDUtils.canCompose;
 import static org.fortiss.tooling.base.ui.utils.FXDNDUtils.compose;
 
diff --git a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/editor/fx/controller/EObjectEllipticResizableContentControllerBase.java b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/editor/fx/controller/EObjectEllipticResizableContentControllerBase.java
index 958d3856daf5337cd75d0a6f163a27dcc8717160..f12e8f5a646a23fe428ed4768bf041c8b885ec81 100644
--- a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/editor/fx/controller/EObjectEllipticResizableContentControllerBase.java
+++ b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/editor/fx/controller/EObjectEllipticResizableContentControllerBase.java
@@ -15,8 +15,8 @@ package org.fortiss.tooling.base.ui.editor.fx.controller;
 
 import static java.lang.Math.max;
 import static java.util.Objects.requireNonNull;
-import static org.fortiss.tooling.base.ui.editor.fx.controller.ContextMenuUtil.createElementCompositionContext;
-import static org.fortiss.tooling.base.ui.editor.fx.controller.ContextMenuUtil.createPrototypeMenu;
+import static org.fortiss.tooling.base.ui.utils.ContextMenuUtils.createElementCompositionContext;
+import static org.fortiss.tooling.base.ui.utils.ContextMenuUtils.createPrototypeMenu;
 import static org.fortiss.tooling.base.ui.utils.FXDNDUtils.canCompose;
 import static org.fortiss.tooling.base.ui.utils.FXDNDUtils.compose;
 
diff --git a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/editor/fx/controller/EObjectRectangularResizableContentControllerBase.java b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/editor/fx/controller/EObjectRectangularResizableContentControllerBase.java
index 7cbc3e89b7b74106d56b8b4f845087e96e13d109..cde6c13659611d927691c03ecd2621cff2414b03 100644
--- a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/editor/fx/controller/EObjectRectangularResizableContentControllerBase.java
+++ b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/editor/fx/controller/EObjectRectangularResizableContentControllerBase.java
@@ -17,9 +17,9 @@ import static java.lang.Math.max;
 import static java.util.Objects.requireNonNull;
 import static org.fortiss.tooling.base.layout.DefaultLayoutConstants.DEFAULT_SHAPE_MINIMUM_HEIGHT;
 import static org.fortiss.tooling.base.layout.DefaultLayoutConstants.DEFAULT_SHAPE_MINIMUM_WIDTH;
-import static org.fortiss.tooling.base.ui.editor.fx.controller.ContextMenuUtil.createElementCompositionContext;
-import static org.fortiss.tooling.base.ui.editor.fx.controller.ContextMenuUtil.createPrototypeMenu;
 import static org.fortiss.tooling.base.ui.editor.fx.visual.CoordinateCorrections.RECTANGLE_INSETS;
+import static org.fortiss.tooling.base.ui.utils.ContextMenuUtils.createElementCompositionContext;
+import static org.fortiss.tooling.base.ui.utils.ContextMenuUtils.createPrototypeMenu;
 import static org.fortiss.tooling.base.ui.utils.FXDNDUtils.canCompose;
 import static org.fortiss.tooling.base.ui.utils.FXDNDUtils.compose;
 
diff --git a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/editor/fx/controller/ModelElementFXEditorUIProviderBase.java b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/editor/fx/controller/ModelElementFXEditorUIProviderBase.java
index b81bf7fc945d40f1f842876f07ba70799ab65f6d..6bdd31d033228315e99c973b4986cdabc135ec9f 100644
--- a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/editor/fx/controller/ModelElementFXEditorUIProviderBase.java
+++ b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/editor/fx/controller/ModelElementFXEditorUIProviderBase.java
@@ -15,7 +15,7 @@
 +--------------------------------------------------------------------------*/
 package org.fortiss.tooling.base.ui.editor.fx.controller;
 
-import static org.fortiss.tooling.base.ui.editor.fx.controller.ContextMenuUtil.createPrototypeMenu;
+import static org.fortiss.tooling.base.ui.utils.ContextMenuUtils.createPrototypeMenu;
 
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.StructuredSelection;
diff --git a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/utils/.ratings b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/utils/.ratings
index 85140cb87fbdb9fa25f96639cf9616251798620f..624cab7eb654b7f8a1f48206d2628f061bc4ac39 100644
--- a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/utils/.ratings
+++ b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/utils/.ratings
@@ -1,5 +1,6 @@
 AbstractNameEditingSupport.java c57336a0e0da18711a1610ca667dfea76728807f GREEN
 ActionUtils.java 322f43d4f92f992daef8ac88eb0f9197c840c89b GREEN
+ContextMenuUtils.java 434d6b7aad095ce726caa4de42913391ed6e6832 GREEN
 DragAndDropBaseUtils.java d375377f9124f6113b2a295e6b0e09ac8966e564 GREEN
 EllipseLayoutUIUtils.java 4dd9dbd96a45e8c455c019caa19e4a50f18336af GREEN
 FXDNDUtils.java 6ce94e239e68f9e2b3cc0524b072606f4a120076 GREEN
diff --git a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/editor/fx/controller/ContextMenuUtil.java b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/utils/ContextMenuUtils.java
similarity index 91%
rename from org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/editor/fx/controller/ContextMenuUtil.java
rename to org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/utils/ContextMenuUtils.java
index 6d270ba4c239c35ee487192427d02797e73ee109..434d6b7aad095ce726caa4de42913391ed6e6832 100644
--- a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/editor/fx/controller/ContextMenuUtil.java
+++ b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/utils/ContextMenuUtils.java
@@ -13,7 +13,7 @@
 | See the License for the specific language governing permissions and      |
 | limitations under the License.                                           |
 +--------------------------------------------------------------------------*/
-package org.fortiss.tooling.base.ui.editor.fx.controller;
+package org.fortiss.tooling.base.ui.utils;
 
 import static org.fortiss.tooling.base.utils.LayoutModelElementFactory.createPoint;
 
@@ -42,7 +42,7 @@ import javafx.scene.control.MenuItem;
  * 
  * @author hoelzl
  */
-public final class ContextMenuUtil {
+public final class ContextMenuUtils {
 	/** Creates the menu populated with composable prototypes. */
 	public static List<MenuItem> createPrototypeMenu(EObject target,
 			IElementCompositionContext context) {
@@ -70,6 +70,21 @@ public final class ContextMenuUtil {
 		return result;
 	}
 
+	/** Creates a delete menu entry */
+	public static MenuItem createDeleteMenu(EObject target) {
+		IElementCompositorService ecs = IElementCompositorService.getInstance();
+		ICommandStackService css = ICommandStackService.getInstance();
+
+		MenuItem deleteMenuItem = new MenuItem("Delete");
+		deleteMenuItem.setOnAction(evt -> {
+			css.runAsCommand(target, () -> {
+				ecs.decompose(target);
+			});
+		});
+
+		return deleteMenuItem;
+	}
+
 	/** Creates an auto-layout menu entry for {@link IHierarchicElement}s. */
 	public static MenuItem createAutoLayoutMenu(IHierarchicElement target) {
 		final String MENU_NAME = "Automatic layout";
diff --git a/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/.ratings b/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/.ratings
index 6cf75f172549d1a985d1af27fdb24bcb1ccc48af..906ccdc1ea2d77a4a4fa385733551b656bd87b0b 100644
--- a/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/.ratings
+++ b/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/.ratings
@@ -1,8 +1,8 @@
 DynamicTreeContentProviderBase.java 6760a6dc5721175b1dada8f30fd9da05f7bcc4b3 GREEN
 DynamicTreeItem.java 75dc5534b119ffdb3c10a65810c2a0f330b7955e GREEN
-DynamicTreeTableUIProviderBase.java f4fd20e3d267bc39a33a3bbb18416312779ea886 GREEN
+DynamicTreeTableUIProviderBase.java ea7de1e0fd824b61b46010d2317f93422bab6144 GREEN
 DynamicTreeTableViewer.java 431ac62cbd6ad7df25852fce1b5a62a05ba510e3 GREEN
 DynamicTreeUIProviderBase.java e9b68607683de279d0cb8712a28dc131c5c33ece GREEN
-DynamicTreeViewer.java e9f19d16a2a7e5a1b03b8a8b543453ac7eb6a051 GREEN
+DynamicTreeViewer.java 725f41f4fb4b6bfa813f010fb9083ab02eea164a GREEN
 DynamicTreeViewerBase.java a2013538b62d86f6a09efdf2cd78babac2072484 GREEN
 IDoubleClickHandler.java 447f7769dead9a106b3ea3139ef0da51eb0b9a89 GREEN
diff --git a/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/DynamicTreeTableUIProviderBase.java b/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/DynamicTreeTableUIProviderBase.java
index f4fd20e3d267bc39a33a3bbb18416312779ea886..ea7de1e0fd824b61b46010d2317f93422bab6144 100644
--- a/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/DynamicTreeTableUIProviderBase.java
+++ b/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/DynamicTreeTableUIProviderBase.java
@@ -13,15 +13,20 @@
  *******************************************************************************/
 package org.fortiss.tooling.common.ui.javafx.control.treetableview;
 
+import static org.apache.commons.lang3.SystemUtils.IS_OS_LINUX;
+
 import javafx.scene.Node;
 import javafx.scene.control.ContextMenu;
 import javafx.scene.control.TextField;
+import javafx.scene.control.TreeItem;
 import javafx.scene.control.TreeTableCell;
 import javafx.scene.control.TreeTableColumn;
 import javafx.scene.control.cell.TextFieldTreeTableCell;
 import javafx.scene.input.Dragboard;
 import javafx.scene.input.KeyCode;
 import javafx.scene.input.KeyEvent;
+import javafx.scene.input.MouseButton;
+import javafx.scene.input.MouseEvent;
 import javafx.util.Callback;
 import javafx.util.converter.DefaultStringConverter;
 
@@ -233,15 +238,44 @@ public abstract class DynamicTreeTableUIProviderBase<T> {
 				@Override
 				protected void updateItem(String item, boolean empty) {
 					super.updateItem(item, empty);
+
 					ContextMenu menu = null;
 					Node icon = null;
 					if(!empty && item != null) {
 						T data = this.getTreeTableRow().getItem();
-						menu = createContextMenu(data, colIndex);
 						icon = getIconNode(data, colIndex);
+
+						menu = createContextMenu(data, colIndex);
+						if(IS_OS_LINUX && menu != null) {
+							// JFX-builtin handling is non-operation in Linux.
+							addContextMenuHandler(menu, data);
+						}
 					}
-					this.setContextMenu(menu);
 					this.setGraphic(icon);
+					this.setContextMenu(menu);
+				}
+
+				/**
+				 * Adds a handler for showing the context menu. Duplicate of the same method in
+				 * {@link DynamicTreeViewer} due to the absence of proper selection interfaces in
+				 * JFX.
+				 */
+				private void addContextMenuHandler(ContextMenu menu, T element) {
+					getTreeTableView().addEventHandler(MouseEvent.MOUSE_RELEASED, e -> {
+						if(e.getButton() == MouseButton.SECONDARY) {
+							TreeItem<T> selected =
+									getTreeTableView().getSelectionModel().getSelectedItem();
+
+							// We must check the element since all rows are evaluated.
+							if(selected != null && selected.getValue() == element) {
+								menu.show(this, e.getScreenX(), e.getScreenY());
+								e.consume();
+							}
+						} else {
+							// any other click cause hiding menu
+							menu.hide();
+						}
+					});
 				}
 			};
 			cell.textProperty().bind(cell.itemProperty());
diff --git a/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/DynamicTreeViewer.java b/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/DynamicTreeViewer.java
index e9f19d16a2a7e5a1b03b8a8b543453ac7eb6a051..725f41f4fb4b6bfa813f010fb9083ab02eea164a 100644
--- a/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/DynamicTreeViewer.java
+++ b/org.fortiss.tooling.common.ui/src/org/fortiss/tooling/common/ui/javafx/control/treetableview/DynamicTreeViewer.java
@@ -15,6 +15,8 @@
  *******************************************************************************/
 package org.fortiss.tooling.common.ui.javafx.control.treetableview;
 
+import static org.apache.commons.lang3.SystemUtils.IS_OS_LINUX;
+
 import javafx.beans.value.ChangeListener;
 import javafx.scene.control.ContextMenu;
 import javafx.scene.control.TreeCell;
@@ -23,6 +25,7 @@ import javafx.scene.control.TreeView;
 import javafx.scene.input.ClipboardContent;
 import javafx.scene.input.DragEvent;
 import javafx.scene.input.Dragboard;
+import javafx.scene.input.MouseButton;
 import javafx.scene.input.MouseEvent;
 import javafx.scene.input.TransferMode;
 
@@ -127,6 +130,11 @@ public final class DynamicTreeViewer<T> extends DynamicTreeViewerBase<T> {
 					ContextMenu menu = null;
 					if(!empty && item != null) {
 						menu = uiProvider.createContextMenu(item);
+						if(IS_OS_LINUX && menu != null) {
+							// JFX-builtin handling is non-operation in Linux.
+							addContextMenuHandler(menu, item);
+						}
+
 						this.setText(uiProvider.getLabel(item));
 						this.setGraphic(uiProvider.getIconNode(item));
 						this.setOnDragDetected(evt -> {
@@ -149,6 +157,28 @@ public final class DynamicTreeViewer<T> extends DynamicTreeViewerBase<T> {
 		});
 	}
 
+	/**
+	 * Adds a handler for showing the context menu. Duplicate of the same method in
+	 * {@link DynamicTreeTableUIProviderBase} due to the absence of proper selection interfaces in
+	 * JFX.
+	 */
+	private void addContextMenuHandler(ContextMenu menu, T element) {
+		view.addEventHandler(MouseEvent.MOUSE_RELEASED, e -> {
+			if(e.getButton() == MouseButton.SECONDARY) {
+				TreeItem<T> selected = view.getSelectionModel().getSelectedItem();
+
+				// We must check the element since all rows are evaluated.
+				if(selected != null && selected.getValue() == element) {
+					menu.show(view, e.getScreenX(), e.getScreenY());
+					e.consume();
+				}
+			} else {
+				// any other click cause hiding menu
+				menu.hide();
+			}
+		});
+	}
+
 	/** Called when an item in the tree is dragged. */
 	private void dragDetected(MouseEvent evt, TreeCell<T> cell, T item) {
 		ClipboardContent cbContent = uiProvider.getDragClipboardContent(item);