diff --git a/layers/plugins/org.eclipse.papyrus.infra.gmfdiag.layers.ui/plugin.xml b/layers/plugins/org.eclipse.papyrus.infra.gmfdiag.layers.ui/plugin.xml
index 80084a9..01d7981 100755
--- a/layers/plugins/org.eclipse.papyrus.infra.gmfdiag.layers.ui/plugin.xml
+++ b/layers/plugins/org.eclipse.papyrus.infra.gmfdiag.layers.ui/plugin.xml
@@ -23,8 +23,12 @@
             name="Detach LayerStack">
       </command>
       <command
-            id="org.eclipse.papyrus.infra.gmfdiag.layers.ui.commands.delete"
-            name="Delete">
+            id="org.eclipse.papyrus.infra.gmfdiag.layers.ui.commands.deleteLayer"
+            name="Delete Layer">
+      </command>
+      <command
+            id="org.eclipse.papyrus.infra.gmfdiag.layers.ui.commands.deleteProperty"
+            name="Delete Property">
       </command>
       <command
             id="org.eclipse.papyrus.infra.gmfdiag.layers.ui.commands.createlayer"
@@ -60,7 +64,6 @@
       </command>
    </extension>
    <extension
-         name="Layers"
          point="org.eclipse.ui.handlers">
       <handler
             class="org.eclipse.papyrus.internal.infra.gmfdiag.layers.ui.commands.AttachLayerStackCommand"
@@ -88,7 +91,11 @@
       </handler>
       <handler
             class="org.eclipse.papyrus.internal.infra.gmfdiag.layers.ui.handlers.DeleteItemHandler"
-            commandId="org.eclipse.papyrus.infra.gmfdiag.layers.ui.commands.delete">
+            commandId="org.eclipse.papyrus.infra.gmfdiag.layers.ui.commands.deleteLayer">
+      </handler>
+      <handler
+            class="org.eclipse.papyrus.internal.infra.gmfdiag.layers.ui.handlers.DeleteItemHandler"
+            commandId="org.eclipse.papyrus.infra.gmfdiag.layers.ui.commands.deleteProperty">
       </handler>
       <handler
             class="org.eclipse.papyrus.internal.infra.gmfdiag.layers.ui.handlers.OpenLayerExplorerHandler"
@@ -114,10 +121,10 @@
          <menu
                label="Layers">
             <command
-                  commandId="org.eclipse.papyrus.infra.gmfdiag.layers.ui.commands.attachLayerStack"
-                  label="Attach Layer Stack"
+                  commandId="org.eclipse.papyrus.infra.gmfdiag.layers.ui.commands.openlayersexplorerview"
+                  label="Open Layers Explorer"
                   style="push"
-                  tooltip="Attach a Layer Stack to the diagram">
+                  tooltip="Open the Layers Explorer View">
             </command>
             <command
                   commandId="org.eclipse.papyrus.infra.gmfdiag.layers.ui.commands.detachLayerStack"
@@ -126,10 +133,10 @@
                   tooltip="Detach a Layer Stack to the diagram">
             </command>
             <command
-                  commandId="org.eclipse.papyrus.infra.gmfdiag.layers.ui.commands.openlayersexplorerview"
-                  label="Open Layers Explorer"
+                  commandId="org.eclipse.papyrus.infra.gmfdiag.layers.ui.commands.attachLayerStack"
+                  label="Attach Layer Stack"
                   style="push"
-                  tooltip="Open the Layers Explorer View">
+                  tooltip="Attach a Layer Stack to the diagram">
             </command>
          </menu>
       </menuContribution>
@@ -213,11 +220,11 @@
             </visibleWhen>
          </command>
          <command
-               commandId="org.eclipse.papyrus.infra.gmfdiag.layers.ui.commands.delete"
+               commandId="org.eclipse.papyrus.infra.gmfdiag.layers.ui.commands.deleteLayer"
                icon="IMG_TOOL_DELETE"
-               label="Delete"
+               label="Delete Layer"
                style="push"
-               tooltip="Delete Selected Item from the Layer Explorer">
+               tooltip="Delete Selected Layer from the Layer Explorer">
             <visibleWhen
                   checkEnabled="false">
                <and>
@@ -232,6 +239,26 @@
                </and>
             </visibleWhen>
          </command>
+         <command
+               commandId="org.eclipse.papyrus.infra.gmfdiag.layers.ui.commands.deleteProperty"
+               icon="IMG_TOOL_DELETE"
+               label="Delete Property"
+               style="push"
+               tooltip="Delete Selected Property from the Layer Explorer">
+            <visibleWhen
+                  checkEnabled="false">
+               <and>
+                  <with
+                        variable="selection">
+                     <test
+                           forcePluginActivation="true"
+                           property="org.eclipse.papyrus.infra.gmfdiag.layers.ui.tester.canDeleteProperty"
+                           value="true">
+                     </test>
+                  </with>
+               </and>
+            </visibleWhen>
+         </command>
          <separator
                name="endseparator"
                visible="false">
@@ -275,7 +302,7 @@
           class="org.eclipse.papyrus.internal.infra.gmfdiag.layers.ui.utils.LayersWidgetPropertyTester"
           id="org.eclipse.papyrus.infra.gmfdiag.layers.ui.tester"
           namespace="org.eclipse.papyrus.infra.gmfdiag.layers.ui.tester"
-          properties="canCreateLayer, canAttachProperties, canAttachCSS, canAttachCSSHide, canAttachViews, canDeleteLayer"
+          properties="canCreateLayer, canAttachProperties, canAttachCSS, canAttachCSSHide, canAttachViews, canDeleteLayer, canDeleteProperty"
           type="org.eclipse.jface.viewers.IStructuredSelection">
     </propertyTester>
     </extension>
diff --git a/layers/plugins/org.eclipse.papyrus.infra.gmfdiag.layers.ui/src/org/eclipse/papyrus/internal/infra/gmfdiag/layers/ui/utils/LayersWidgetPropertyTester.java b/layers/plugins/org.eclipse.papyrus.infra.gmfdiag.layers.ui/src/org/eclipse/papyrus/internal/infra/gmfdiag/layers/ui/utils/LayersWidgetPropertyTester.java
index e6a4ce6..b1c8186 100755
--- a/layers/plugins/org.eclipse.papyrus.infra.gmfdiag.layers.ui/src/org/eclipse/papyrus/internal/infra/gmfdiag/layers/ui/utils/LayersWidgetPropertyTester.java
+++ b/layers/plugins/org.eclipse.papyrus.infra.gmfdiag.layers.ui/src/org/eclipse/papyrus/internal/infra/gmfdiag/layers/ui/utils/LayersWidgetPropertyTester.java
@@ -17,6 +17,7 @@
 import org.eclipse.jface.viewers.TreeSelection;
 import org.eclipse.papyrus.internal.infra.gmfdiag.layers.model.layers.Layer;
 import org.eclipse.papyrus.internal.infra.gmfdiag.layers.model.layers.TopLayerOperator;
+import org.eclipse.papyrus.internal.infra.gmfdiag.layers.model.layers.TypeInstance;
 
 /**
  * @author Quentin Le Menez
@@ -30,6 +31,8 @@
 
 	private static final String CAN_ATTACH_PROPERTIES = "canAttachProperties"; //$NON-NLS-1$
 
+	private static final String CAN_DELETE_PROPERTY = "canDeleteProperty"; //$NON-NLS-1$
+
 	private static final String CAN_ATTACH_CSS = "canAttachCSS"; //$NON-NLS-1$
 
 	private static final String CAN_ATTACH_CSS_HIDE = "canAttachCSSHide"; //$NON-NLS-1$
@@ -50,7 +53,10 @@
 	public boolean test(Object receiver, String property, Object[] args, Object expectedValue) {
 
 		// TODO these cases should be handled better, e.g. directly through the plugin.xml filters
-		if (CAN_ATTACH_PROPERTIES.equals(property)) {
+		if (CAN_CREATE_LAYER.equals(property)) {
+			return stackMenu(receiver);
+		} 
+		else if (CAN_ATTACH_PROPERTIES.equals(property)) {
 			return layerMenu(receiver);
 		} else if (CAN_ATTACH_CSS.equals(property)) {
 			return layerMenu(receiver);
@@ -58,10 +64,11 @@
 			return layerMenu(receiver);
 		} else if (CAN_ATTACH_VIEWS.equals(property)) {
 			return layerMenu(receiver);
-		} else if (CAN_CREATE_LAYER.equals(property)) {
-			return stackMenu(receiver);
-		} else if (CAN_DELETE_LAYER.equals(property)) {
+		} else  if (CAN_DELETE_LAYER.equals(property)) {
 			return layerMenu(receiver);
+		} 
+		else if (CAN_DELETE_PROPERTY.equals(property)) {
+			return propertyMenu(receiver);
 		}
 
 		// the menu is not one of the above and should be added to the list if necessary
@@ -78,6 +85,16 @@
 		}
 		return false;
 	}
+	
+	private boolean propertyMenu(Object receiver) {
+		if (receiver instanceof TreeSelection) {
+			TreeSelection ts = (TreeSelection) receiver;
+			if (ts.getFirstElement() instanceof TypeInstance) {
+				return true;
+			}
+		}
+		return false;
+	}
 
 	private boolean stackMenu(Object receiver) {
 		if (receiver instanceof TreeSelection) {
