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 b1fcc5d50d9364a1990e6776a8930a8c0739d01d..8c7aaa0e5259137ef1785568b3def798bd81a6a4 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
@@ -149,12 +149,6 @@ public abstract class DiagramEditPartBase<T extends EObject> extends
 		return super.getAdapter(adapter);
 	}
 
-	/** {@inheritDoc} */
-	@Override
-	public IFigure getContentPane() {
-		return super.getContentPane(); // getLayer(ExtendedLayerRootEditPart.NODE_LAYER);
-	}
-
 	/** Adds all nodes and connectors as children. */
 	@Override
 	protected List<Object> getModelChildren() {
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 40d28211e587685894f1fcc60e3cbe1f81bcaab8..a8712a54566958a1bbb3d25d7692df282b8e12c4 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,7 +23,6 @@ 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;
 
@@ -100,12 +99,6 @@ public class ExtendedLayerRootEditPart extends ScalableRootEditPart {
 		return pane;
 	}
 
-	/** {@inheritDoc} */
-	@Override
-	public IFigure getContentPane() {
-		return super.getContentPane();// getLayer(NODE_LAYER);
-	}
-
 	/** {@inheritDoc} */
 	@Override
 	public IFigure getLayer(Object key) {
@@ -124,16 +117,6 @@ 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 8fd2b4e49eea387721414b05782412c3170c7f91..0ae93d2a434ef5a5fd2ce86ec4cc6f0241f507cd 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,17 +100,4 @@ 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 d2f2cf534ae0b1e3c5c2d2a8b008604195e16d77..3b54ca2c5a76eef7c9c106791249b89c66878388 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
@@ -86,18 +86,6 @@ public abstract class PositionedEditPartBase<T extends ILayoutedModelElement>
 	@Override
 	protected final IFigure createFigure() {
 		baseFigure = createBaseFigure();
-
-		labelFigure = createLabelFigure();
-		if (labelFigure != null) {
-			getLayer(ExtendedLayerRootEditPart.LABEL_LAYER).add(labelFigure);
-		}
-
-		decorationFigure = createDecorationFigure();
-		if (decorationFigure != null) {
-			getLayer(ExtendedLayerRootEditPart.DECORATION_LAYER).add(
-					decorationFigure);
-		}
-
 		return baseFigure;
 	}
 
@@ -195,6 +183,35 @@ public abstract class PositionedEditPartBase<T extends ILayoutedModelElement>
 		}
 	}
 
+	/** {@inheritDoc} */
+	@Override
+	public void addNotify() {
+		labelFigure = createLabelFigure();
+		if (labelFigure != null) {
+			getLayer(ExtendedLayerRootEditPart.LABEL_LAYER).add(labelFigure);
+		}
+		decorationFigure = createDecorationFigure();
+		if (decorationFigure != null) {
+			getLayer(ExtendedLayerRootEditPart.DECORATION_LAYER).add(
+					decorationFigure);
+		}
+		// called last, since it also refreshes label and decoration
+		super.addNotify();
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	public void removeNotify() {
+		if (labelFigure != null) {
+			getLayer(ExtendedLayerRootEditPart.LABEL_LAYER).remove(labelFigure);
+		}
+		if (decorationFigure != null) {
+			getLayer(ExtendedLayerRootEditPart.DECORATION_LAYER).remove(
+					decorationFigure);
+		}
+		super.removeNotify();
+	}
+
 	/**
 	 * {@inheritDoc}
 	 * <p>
@@ -253,21 +270,4 @@ 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