diff --git a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/DiagramEditPartBase.java b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/DiagramEditPartBase.java
index d45b30df87573b27b95ef30976d01c49c87b5e35..b1fcc5d50d9364a1990e6776a8930a8c0739d01d 100644
--- a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/DiagramEditPartBase.java
+++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/DiagramEditPartBase.java
@@ -152,7 +152,7 @@ public abstract class DiagramEditPartBase<T extends EObject> extends
 	/** {@inheritDoc} */
 	@Override
 	public IFigure getContentPane() {
-		return getLayer(ExtendedLayerRootEditPart.NODE_LAYER);
+		return super.getContentPane(); // getLayer(ExtendedLayerRootEditPart.NODE_LAYER);
 	}
 
 	/** Adds all nodes and connectors as children. */
diff --git a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/ExtendedLayerRootEditPart.java b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/ExtendedLayerRootEditPart.java
index 8642aedd4df224fe0d4de065d46a9dda861680cb..40d28211e587685894f1fcc60e3cbe1f81bcaab8 100644
--- a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/ExtendedLayerRootEditPart.java
+++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/ExtendedLayerRootEditPart.java
@@ -23,6 +23,7 @@ import org.eclipse.draw2d.IFigure;
 import org.eclipse.draw2d.Layer;
 import org.eclipse.draw2d.LayeredPane;
 import org.eclipse.draw2d.XYLayout;
+import org.eclipse.gef.EditPart;
 import org.eclipse.gef.LayerConstants;
 import org.eclipse.gef.editparts.ScalableRootEditPart;
 
@@ -102,7 +103,7 @@ public class ExtendedLayerRootEditPart extends ScalableRootEditPart {
 	/** {@inheritDoc} */
 	@Override
 	public IFigure getContentPane() {
-		return getLayer(NODE_LAYER);
+		return super.getContentPane();// getLayer(NODE_LAYER);
 	}
 
 	/** {@inheritDoc} */
@@ -123,6 +124,16 @@ public class ExtendedLayerRootEditPart extends ScalableRootEditPart {
 		return super.getLayer(key);
 	}
 
+	/** {@inheritDoc} */
+	@Override
+	protected void removeChildVisual(EditPart childEditPart) {
+		super.removeChildVisual(childEditPart);
+		if (childEditPart instanceof GraphicalEditPartBase<?>) {
+			GraphicalEditPartBase<?> gep = (GraphicalEditPartBase<?>) childEditPart;
+			gep.removeVisuals();
+		}
+	}
+
 	/** Creates the default layer with XYLayout. */
 	private Layer createDefaultLayer() {
 		Layer l = new FreeformLayer();
diff --git a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/GraphicalEditPartBase.java b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/GraphicalEditPartBase.java
index 0ae93d2a434ef5a5fd2ce86ec4cc6f0241f507cd..8fd2b4e49eea387721414b05782412c3170c7f91 100644
--- a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/GraphicalEditPartBase.java
+++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/GraphicalEditPartBase.java
@@ -100,4 +100,17 @@ public abstract class GraphicalEditPartBase<T extends EObject> extends
 		}
 		return super.getAdapter(key);
 	}
+
+	/**
+	 * Called when the edit part is removed and should remove its visual
+	 * children from layers. Sub-classes may override, but must call super
+	 * implementation.
+	 */
+	public void removeVisuals() {
+		for (Object ep : getChildren()) {
+			if (ep instanceof GraphicalEditPartBase<?>) {
+				((GraphicalEditPartBase<?>) ep).removeVisuals();
+			}
+		}
+	}
 }
diff --git a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/PositionedEditPartBase.java b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/PositionedEditPartBase.java
index ceb002586228c7bf2f5c8a34616d157baa113ca9..d2f2cf534ae0b1e3c5c2d2a8b008604195e16d77 100644
--- a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/PositionedEditPartBase.java
+++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/PositionedEditPartBase.java
@@ -253,4 +253,21 @@ public abstract class PositionedEditPartBase<T extends ILayoutedModelElement>
 		}
 		return null;
 	}
+
+	/** {@inheritDoc} */
+	@Override
+	public void removeVisuals() {
+		super.removeVisuals();
+
+		// if (baseFigure != null) {
+		// getLayer(ExtendedLayerRootEditPart.NODE_LAYER).remove(baseFigure);
+		// }
+		if (labelFigure != null) {
+			getLayer(ExtendedLayerRootEditPart.LABEL_LAYER).remove(labelFigure);
+		}
+		if (decorationFigure != null) {
+			getLayer(ExtendedLayerRootEditPart.DECORATION_LAYER).remove(
+					decorationFigure);
+		}
+	}
 }
\ No newline at end of file