diff --git a/plugins/org.eclipse.m2m.qvt.oml.debug.ui/src/org/eclipse/m2m/internal/qvt/oml/debug/ui/views/TraceViewPart.java b/plugins/org.eclipse.m2m.qvt.oml.debug.ui/src/org/eclipse/m2m/internal/qvt/oml/debug/ui/views/TraceViewPart.java
index 901a784..2795df9 100644
--- a/plugins/org.eclipse.m2m.qvt.oml.debug.ui/src/org/eclipse/m2m/internal/qvt/oml/debug/ui/views/TraceViewPart.java
+++ b/plugins/org.eclipse.m2m.qvt.oml.debug.ui/src/org/eclipse/m2m/internal/qvt/oml/debug/ui/views/TraceViewPart.java
@@ -11,6 +11,7 @@
 package org.eclipse.m2m.internal.qvt.oml.debug.ui.views;
 
 import org.eclipse.debug.core.DebugException;
+import org.eclipse.debug.core.model.IDebugTarget;
 import org.eclipse.debug.core.model.IStackFrame;
 import org.eclipse.debug.ui.AbstractDebugView;
 import org.eclipse.debug.ui.DebugUITools;
@@ -99,24 +100,30 @@
             if (firstElement == null) {
                 return;
             }
-            QVTOStackFrame qvtStackFrame = null;
+            
+            IDebugTarget debugTarget = null;
             if (firstElement instanceof QVTOThread) {
             	QVTOThread qvtThread = (QVTOThread) firstElement;
                 try {
                     IStackFrame[] stackFrames = qvtThread.getStackFrames();
-                    if (stackFrames.length == 0) {
+                    if (stackFrames.length == 0 
+                    		|| false == stackFrames[0] instanceof QVTOStackFrame) {
                     	return;
                     }
-					qvtStackFrame = (QVTOStackFrame) stackFrames[0];
+                    debugTarget = ((QVTOStackFrame) stackFrames[0]).getDebugTarget();
                 } catch (DebugException e) {
                 	QVTODebugCore.log(e);
                 }
             }
-			if (firstElement instanceof QVTOStackFrame) {
-				qvtStackFrame = (QVTOStackFrame) firstElement;
+            else if (firstElement instanceof QVTOStackFrame) {
+				debugTarget = ((QVTOStackFrame) firstElement).getDebugTarget();
 			}
-            if (qvtStackFrame != null) {
-            	QvtOperationalEvaluationEnv evalEnv = (QvtOperationalEvaluationEnv) qvtStackFrame.getDebugTarget().getAdapter(QvtOperationalEvaluationEnv.class);
+            else if (firstElement instanceof IDebugTarget) {
+				debugTarget = (IDebugTarget) firstElement;
+			}
+
+			if (debugTarget != null) {
+            	QvtOperationalEvaluationEnv evalEnv = (QvtOperationalEvaluationEnv) debugTarget.getAdapter(QvtOperationalEvaluationEnv.class);
             	if (evalEnv != null) {
 	                InternalEvaluationEnv internEnv = evalEnv.getAdapter(InternalEvaluationEnv.class);
 	                Trace trace = internEnv.getTraces();
