diff --git a/plugins/org.eclipse.objectteams.otdt.debug.adaptor/src/org/eclipse/objectteams/otdt/internal/debug/adaptor/PresentationAdaptor.java b/plugins/org.eclipse.objectteams.otdt.debug.adaptor/src/org/eclipse/objectteams/otdt/internal/debug/adaptor/PresentationAdaptor.java
index c39d54d..15eb54c 100644
--- a/plugins/org.eclipse.objectteams.otdt.debug.adaptor/src/org/eclipse/objectteams/otdt/internal/debug/adaptor/PresentationAdaptor.java
+++ b/plugins/org.eclipse.objectteams.otdt.debug.adaptor/src/org/eclipse/objectteams/otdt/internal/debug/adaptor/PresentationAdaptor.java
@@ -34,6 +34,7 @@
 import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.texteditor.IDocumentProvider;
 
+import base org.eclipse.jdt.debug.core.IJavaStackFrame;
 import base org.eclipse.jdt.internal.debug.core.model.JDIReferenceType;
 import base org.eclipse.jdt.internal.debug.core.model.JDIStackFrame;
 import base org.eclipse.jdt.internal.ui.javaeditor.JavaEditor;
@@ -71,17 +72,22 @@
 		return instance;
 	}
 	
+	@SuppressWarnings("abstractrelevantrole")
+	protected abstract class AbstractOTJStackFrame playedBy IJavaStackFrame {
+		// store analyzed method kind between calls:
+		protected MethodKind kind= MethodKind.PLAIN;
+		
+		abstract protected boolean isOTSpecialSrc();
+		abstract protected boolean isPurelyGenerated();
+	}
 	@SuppressWarnings("unchecked")
-	protected class OTJStackFrame playedBy JDIStackFrame 
+	protected class OTJStackFrame extends AbstractOTJStackFrame playedBy JDIStackFrame 
 	{
 		// === imports: ===
 		boolean isStatic() -> boolean isStatic();
 		int modifiers() -> com.sun.jdi.Method getUnderlyingMethod()
 			with { result <- result.modifiers() }
 
-		// store analyzed method kind between calls:
-		protected MethodKind kind= MethodKind.PLAIN;
-		
 		// == currently unused: ==
 		boolean isRole;
 		boolean isTeam; 
@@ -306,7 +312,7 @@
 	 * @param element stackframe
 	 * @return symbolic color name or null.
 	 */
-	public String getFrameColorName(JDIStackFrame as OTJStackFrame element) {
+	public String getFrameColorName(IJavaStackFrame as AbstractOTJStackFrame element) {
 		if (element.isPurelyGenerated())
 			return OTDebugUIPlugin.PREF_OT_GENERATED_CODE_COLOR;
 		if (element.isOTSpecialSrc())
@@ -327,7 +333,7 @@
 	}
 
 	/** Final embellishment of a label after everything has been analyzed. */
-	public String postProcess(JDIStackFrame as OTJStackFrame stackFrame, String labelText) 
+	public String postProcess(IJavaStackFrame as AbstractOTJStackFrame stackFrame, String labelText) 
 	{
 		if (stackFrame.kind == MethodKind.INITIAL) // this we didn't know when creating the label text			
 			return labelText.replace(DebugUIMessages.JDIModelPresentation_line__76+' '+DebugUIMessages.JDIModelPresentation_not_available, 
diff --git a/plugins/org.eclipse.objectteams.otdt.debug.adaptor/src/org/eclipse/objectteams/otdt/internal/debug/adaptor/PresentationAdaptorActivator.java b/plugins/org.eclipse.objectteams.otdt.debug.adaptor/src/org/eclipse/objectteams/otdt/internal/debug/adaptor/PresentationAdaptorActivator.java
index 66f988c..e6aa084 100644
--- a/plugins/org.eclipse.objectteams.otdt.debug.adaptor/src/org/eclipse/objectteams/otdt/internal/debug/adaptor/PresentationAdaptorActivator.java
+++ b/plugins/org.eclipse.objectteams.otdt.debug.adaptor/src/org/eclipse/objectteams/otdt/internal/debug/adaptor/PresentationAdaptorActivator.java
@@ -21,7 +21,7 @@
 import org.eclipse.objectteams.otdt.debug.ui.OTDebugUIPlugin;
 import org.eclipse.swt.graphics.Color;
 import org.eclipse.ui.texteditor.ITextEditor;
-import org.eclipse.jdt.internal.debug.core.model.JDIStackFrame;
+import org.eclipse.jdt.debug.core.IJavaStackFrame;
 import org.eclipse.jdt.internal.ui.javaeditor.JavaEditor;
 import org.eclipse.jface.text.source.Annotation;
 
@@ -91,8 +91,8 @@
 			String result;
 			within (adaptor)
 				result = base.getStackFrameText(stackFrame);
-			if (stackFrame instanceof JDIStackFrame)
-				result = adaptor.postProcess((JDIStackFrame)stackFrame, result);
+			if (stackFrame instanceof IJavaStackFrame)
+				result = adaptor.postProcess((IJavaStackFrame)stackFrame, result);
 			return result; 
 		}
 
@@ -100,9 +100,9 @@
 			base when (LaunchUtils.isOTLaunch(element));
 		@SuppressWarnings("basecall")
 		callin Color getForeground(Object element) {
-			if (element instanceof JDIStackFrame) {
+			if (element instanceof IJavaStackFrame) {
 				PresentationAdaptor adaptor = PresentationAdaptor.getInstance();
-				String colorName= adaptor.getFrameColorName((JDIStackFrame)element);
+				String colorName= adaptor.getFrameColorName((IJavaStackFrame)element);
 				if (colorName != null)
 					return OTDebugUIPlugin.getPreferenceColor(colorName);
 			}
diff --git a/plugins/org.eclipse.objectteams.otdt.debug.adaptor/src/org/eclipse/objectteams/otdt/internal/debug/adaptor/VariablesViewAdaptor.java b/plugins/org.eclipse.objectteams.otdt.debug.adaptor/src/org/eclipse/objectteams/otdt/internal/debug/adaptor/VariablesViewAdaptor.java
index a5fe013..34a864c 100644
--- a/plugins/org.eclipse.objectteams.otdt.debug.adaptor/src/org/eclipse/objectteams/otdt/internal/debug/adaptor/VariablesViewAdaptor.java
+++ b/plugins/org.eclipse.objectteams.otdt.debug.adaptor/src/org/eclipse/objectteams/otdt/internal/debug/adaptor/VariablesViewAdaptor.java
@@ -25,7 +25,6 @@
 import org.eclipse.debug.core.model.IValue;
 import org.eclipse.debug.core.model.IVariable;
 import org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext;
-import org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerUpdate;
 import org.eclipse.debug.ui.IDebugUIConstants;
 import org.eclipse.jdt.debug.core.IJavaFieldVariable;
 import org.eclipse.objectteams.otdt.core.compiler.IOTConstants;
@@ -52,19 +51,18 @@
 	/** Adapt the content provider for root elements of the variables view. */
 	protected class StackFrameContentProvider playedBy StackFrameContentProvider {
 
-		Object[] getAllChildren(Object parent, IPresentationContext context, IViewerUpdate monitor) 
-			<- replace Object[] getAllChildren(Object parent, IPresentationContext context, IViewerUpdate monitor);
+		getAllChildren <- replace getAllChildren;
 
-		callin Object[] getAllChildren(Object parent, IPresentationContext context, IViewerUpdate monitor) 
+		callin Object[] getAllChildren(Object parent, IPresentationContext context) 
 				throws CoreException 
 		{
-			Object[] rawChildren = base.getAllChildren(parent, context, monitor);
+			Object[] rawChildren = base.getAllChildren(parent, context);
 	        
 			if (!context.getId().equals(IDebugUIConstants.ID_VARIABLE_VIEW))
 	        	return rawChildren;
 	        
 			// is filtering needed?
-        	if (ShowOTInternalVariablesAction.includeOTInternal(context))
+        	if (ShowOTInternalVariablesAction.includeOTInternal(context.getId()))
 				return rawChildren;
 
         	// at this point always filter internals, but toplevel never has statics to filter:
@@ -85,7 +83,7 @@
 			Object[] rawChildren = base.getValueChildren(parent, value, context);
 			
 			// is filtering needed?
-			boolean filterOTInternals = ! ShowOTInternalVariablesAction.includeOTInternal(context);		
+			boolean filterOTInternals = ! ShowOTInternalVariablesAction.includeOTInternal(context.getId());		
 			
 			// TeamView constantly filters statics:
 			boolean filterStatics = context.getId().equals(OTDebugUIPlugin.TEAM_VIEW_ID);
diff --git a/plugins/org.eclipse.objectteams.otdt.debug.adaptor/src/org/eclipse/objectteams/otdt/internal/debug/adaptor/actions/ShowOTInternalVariablesAction.java b/plugins/org.eclipse.objectteams.otdt.debug.adaptor/src/org/eclipse/objectteams/otdt/internal/debug/adaptor/actions/ShowOTInternalVariablesAction.java
index f0643d6..ce30d12 100644
--- a/plugins/org.eclipse.objectteams.otdt.debug.adaptor/src/org/eclipse/objectteams/otdt/internal/debug/adaptor/actions/ShowOTInternalVariablesAction.java
+++ b/plugins/org.eclipse.objectteams.otdt.debug.adaptor/src/org/eclipse/objectteams/otdt/internal/debug/adaptor/actions/ShowOTInternalVariablesAction.java
@@ -56,9 +56,9 @@
 		return getCompositeKey();
 	}
 
-	public static boolean includeOTInternal(IPresentationContext context){
+	public static boolean includeOTInternal(String contextId){
 		IPreferenceStore store = OTDebugAdaptorPlugin.getDefault().getPreferenceStore();
-		String key = context.getId() + "." + PreferenceInitializer.PREF_SHOW_OTINTERNAL_VARIABLES; //$NON-NLS-1$
+		String key = contextId + "." + PreferenceInitializer.PREF_SHOW_OTINTERNAL_VARIABLES; //$NON-NLS-1$
 		return store.getBoolean(key);
 	}
 }
