diff --git a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/ElementEditPartBase.java b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/ElementEditPartBase.java
index 98f9a45478577b07e0e10b4d577aa2f2654f3e0b..b17d0883975bb9da10578ef3bcb867d82b8e7df7 100644
--- a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/ElementEditPartBase.java
+++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/ElementEditPartBase.java
@@ -28,6 +28,7 @@ import org.eclipse.draw2d.ConnectionAnchor;
 import org.eclipse.draw2d.Label;
 import org.eclipse.draw2d.PositionConstants;
 import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.emf.ecore.EObject;
 import org.eclipse.gef.EditPart;
 import org.eclipse.gef.EditPolicy;
 import org.eclipse.gef.Request;
@@ -43,6 +44,7 @@ import org.fortiss.tooling.base.ui.editpart.policy.DirectConnectionAndReconnecti
 import org.fortiss.tooling.base.ui.editpart.policy.ElementLayoutEditPolicy;
 import org.fortiss.tooling.base.ui.editpart.policy.RemoveEditPolicy;
 import org.fortiss.tooling.kernel.model.INamedCommentedElement;
+import org.fortiss.tooling.kernel.ui.extension.IModelElementHandler;
 import org.fortiss.tooling.kernel.ui.service.IModelEditorBindingService;
 import org.fortiss.tooling.kernel.ui.service.IModelElementHandlerService;
 
@@ -57,7 +59,7 @@ import org.fortiss.tooling.kernel.ui.service.IModelElementHandlerService;
  * @author hoelzl
  * @author $Author$
  * @version $Rev$
- * @ConQAT.Rating YELLOW Hash: 6E6607D4852E9BEF4236A47605A8B315
+ * @ConQAT.Rating YELLOW Hash: 72C4DDDA8A3A00B520E94DCEA1D58075
  */
 public abstract class ElementEditPartBase<T extends ILayoutedModelElement & INamedCommentedElement>
 		extends PositionedEditPartBase<T> {
@@ -134,7 +136,13 @@ public abstract class ElementEditPartBase<T extends ILayoutedModelElement & INam
 	@Override
 	public void performRequest(Request req) {
 		if (req.getType() == RequestConstants.REQ_OPEN) {
-			IModelEditorBindingService.INSTANCE.openInEditor(getModel());
+			EObject eo = getModel();
+			IModelElementHandler<EObject> handler = IModelElementHandlerService.INSTANCE
+					.getModelElementHandler(eo);
+			if (handler != null) {
+				eo = handler.handleOpenModelElementRequest(eo);
+			}
+			IModelEditorBindingService.INSTANCE.openInEditor(eo);
 		}
 		super.performRequest(req);
 	}
diff --git a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/extension/IModelElementHandler.java b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/extension/IModelElementHandler.java
index 0fb3e54c6f0cf5a9e5bbb258d879474a18756041..45b2b851bd24d6ee840ce34c1dd79231af74db1f 100644
--- a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/extension/IModelElementHandler.java
+++ b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/extension/IModelElementHandler.java
@@ -38,7 +38,7 @@ import org.fortiss.tooling.kernel.ui.service.IModelElementHandlerService;
  * @author hoelzl
  * @author $Author$
  * @version $Rev$
- * @ConQAT.Rating YELLOW Hash: 147CEFD0C47F4808CBE08A3A0EA0B0D7
+ * @ConQAT.Rating YELLOW Hash: B70658CE4F4F97254156C590DF944C2B
  */
 public interface IModelElementHandler<T extends EObject> extends
 		IEObjectAware<T> {
@@ -92,4 +92,10 @@ public interface IModelElementHandler<T extends EObject> extends
 	 * navigator's simplified non-expert view.
 	 */
 	boolean hiddenInNonExpertView();
+
+	/**
+	 * Handles the open model element request by returning the object that
+	 * should be passed to the model editor service.
+	 */
+	EObject handleOpenModelElementRequest(T element);
 }
diff --git a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/extension/base/ModelElementHandlerBase.java b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/extension/base/ModelElementHandlerBase.java
index aba0adf6a58006849db73088eed986a22a28efbc..c483efc2c5708437c83287848762c66adfd34429 100644
--- a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/extension/base/ModelElementHandlerBase.java
+++ b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/extension/base/ModelElementHandlerBase.java
@@ -30,12 +30,13 @@ import org.fortiss.tooling.kernel.ui.extension.IModelElementHandler;
  * 
  * Sub-classes must implement {@link #getIconImageDescriptor()} and may override
  * the other methods of {@link IModelElementHandler}. By default the base
- * implementation returns empty lists for the respective methods.
+ * implementation returns empty lists for the respective methods. Open editor
+ * requests are handled by returning the model element itself.
  * 
  * @author hoelzl
  * @author $Author$
  * @version $Rev$
- * @ConQAT.Rating GREEN Hash: C425E25E66646B2383453FCE7C93A894
+ * @ConQAT.Rating YELLOW Hash: 79E79146952109EB8D56A32668C2BC8D
  */
 public abstract class ModelElementHandlerBase<T extends EObject> implements
 		IModelElementHandler<T> {
@@ -98,4 +99,10 @@ public abstract class ModelElementHandlerBase<T extends EObject> implements
 	public boolean hiddenInNonExpertView() {
 		return false;
 	}
+
+	/** {@inheritDoc} */
+	@Override
+	public EObject handleOpenModelElementRequest(T element) {
+		return element;
+	}
 }
diff --git a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/views/DoubleClick.java b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/views/DoubleClick.java
index 159a8204750628dac7a9d14c16310aa01e659ad3..9df2b95c8ef4b0814caae5b1c5ef3bddc3a7e30a 100644
--- a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/views/DoubleClick.java
+++ b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/views/DoubleClick.java
@@ -21,7 +21,9 @@ import org.eclipse.emf.ecore.EObject;
 import org.eclipse.jface.viewers.DoubleClickEvent;
 import org.eclipse.jface.viewers.IDoubleClickListener;
 import org.eclipse.jface.viewers.IStructuredSelection;
+import org.fortiss.tooling.kernel.ui.extension.IModelElementHandler;
 import org.fortiss.tooling.kernel.ui.service.IModelEditorBindingService;
+import org.fortiss.tooling.kernel.ui.service.IModelElementHandlerService;
 import org.fortiss.tooling.kernel.ui.util.EObjectSelectionUtils;
 
 /**
@@ -30,10 +32,23 @@ import org.fortiss.tooling.kernel.ui.util.EObjectSelectionUtils;
  * @author hoelzl
  * @author $Author$
  * @version $Rev$
- * @ConQAT.Rating YELLOW Hash: 53A68C6E1A420B57E77FAF9B3E1B472A
+ * @ConQAT.Rating YELLOW Hash: 8E97B6DDA60D757813BABD53879EE92A
  */
 final class DoubleClick implements IDoubleClickListener {
 
+	/** Stores the use-raw-eobject flag. */
+	private final boolean useRawEObject;
+
+	/** Constructor. */
+	public DoubleClick() {
+		this(false);
+	}
+
+	/** Constructor. */
+	public DoubleClick(boolean useRawEObject) {
+		this.useRawEObject = useRawEObject;
+	}
+
 	/** {@inheritDoc} */
 	@Override
 	public void doubleClick(DoubleClickEvent event) {
@@ -42,6 +57,14 @@ final class DoubleClick implements IDoubleClickListener {
 			EObject element = EObjectSelectionUtils.getFirstElement(event
 					.getSelection());
 			if (element != null) {
+				if (!useRawEObject) {
+					IModelElementHandler<EObject> handler = IModelElementHandlerService.INSTANCE
+							.getModelElementHandler(element);
+					if (handler != null) {
+						element = handler
+								.handleOpenModelElementRequest(element);
+					}
+				}
 				IModelEditorBindingService.INSTANCE.openInEditor(element);
 			}
 		}
diff --git a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/views/MarkerViewPart.java b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/views/MarkerViewPart.java
index 04c93f343bad89f6ffc35bb45fe19bebb037920e..69602dd4fb159f7751cad3ced1f1679e4ef85f65 100644
--- a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/views/MarkerViewPart.java
+++ b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/views/MarkerViewPart.java
@@ -54,7 +54,7 @@ import org.fortiss.tooling.kernel.ui.service.IModelElementHandlerService;
  * @author hoelzl
  * @author $Author$
  * @version $Rev$
- * @ConQAT.Rating YELLOW Hash: 8E0E8EEE1C47D3C3885B66756CABB8A6
+ * @ConQAT.Rating YELLOW Hash: 36DE8B9C23FA2DA1BBAC12F0F9635DDA
  */
 public class MarkerViewPart extends ViewPart {
 
@@ -187,7 +187,7 @@ public class MarkerViewPart extends ViewPart {
 			}
 		});
 
-		gui.getTreeViewer().addDoubleClickListener(new DoubleClick());
+		gui.getTreeViewer().addDoubleClickListener(new DoubleClick(true));
 		gui.getTreeViewer().setInput(IMarkerService.INSTANCE);
 
 		createToggleActions();