diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/Scanner.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/Scanner.java
index 4015d57..4cc92ac 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/Scanner.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/Scanner.java
@@ -38,6 +38,7 @@
 import org.eclipse.jdt.internal.compiler.classfmt.ClassFileConstants;
 import org.eclipse.jdt.internal.compiler.impl.CompilerOptions;
 import org.eclipse.jdt.internal.compiler.impl.JavaFeature;
+import org.eclipse.jdt.internal.compiler.parser.diagnose.DiagnoseParser;
 import org.eclipse.jdt.internal.compiler.problem.DefaultProblemFactory;
 import org.eclipse.jdt.internal.compiler.problem.ProblemReporter;
 import org.eclipse.jdt.internal.compiler.util.CharDeduplication;
@@ -2257,10 +2258,17 @@
 	if (this.activeParser instanceof VanguardParser) {
 		Goal goal = ((VanguardParser)this.activeParser).currentGoal;
 		return !(goal == Goal.LambdaParameterListGoal || goal == Goal.PatternGoal || goal == Goal.SwitchLabelCaseLhsGoal);
-	} else if (this.activeParser instanceof Parser) {
-		Parser parser = (Parser) this.activeParser;
+	} else {
+		Parser parser = null;
+		if (this.activeParser instanceof DiagnoseParser) {
+			parser = ((DiagnoseParser) this.activeParser).parser;
+		} else if (this.activeParser instanceof Parser) {
+			parser = (Parser) this.activeParser;
+		} else {
+			return true;
+		}
 		if (parser.referenceContext instanceof AbstractMethodDeclaration)
-			return false; // no callout inside a method :)
+			return false; // no callout inside a method (incl. the case of local types in a method):)
 		int ptr = parser.astPtr;
 		while (ptr > -1) {
 			ASTNode topAstNode = parser.astStack[ptr];
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/diagnose/DiagnoseParser.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/diagnose/DiagnoseParser.java
index 9f41417..516f545 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/diagnose/DiagnoseParser.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/diagnose/DiagnoseParser.java
@@ -94,7 +94,12 @@
 	int statePoolTop;
 	StateInfo[] statePool;
 
+//{ObjectTeams: make accessible:
+/* orig:
 	private Parser parser;
+  :giro */
+	public Parser parser;
+// SH}
 
 	private RecoveryScanner recoveryScanner;
 
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/internal/core/dom/rewrite/ASTRewriteAnalyzer.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/internal/core/dom/rewrite/ASTRewriteAnalyzer.java
index 2577755..98430ee 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/internal/core/dom/rewrite/ASTRewriteAnalyzer.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/internal/core/dom/rewrite/ASTRewriteAnalyzer.java
@@ -3711,8 +3711,18 @@
 						oldToken = TerminalTokens.TokenNameARROW;
 						newVal = ":"; //$NON-NLS-1$
 					}
+//{ObjectTeams: here we don't care about BINDOUT, only ARROW:
+					Scanner realScanner = getScanner().getScanner();
+					boolean prev = realScanner.parseOTJonly;
+					realScanner.parseOTJonly = false;
+					realScanner.resetOTFlags();
+//SH}
 					pos = getScanner().getTokenStartOffset(oldToken, pos);
 					tokenEnd = getScanner().getTokenEndOffset(oldToken, pos);
+//{ObjectTeams: reset:
+					realScanner.parseOTJonly = prev;
+					realScanner.resetOTFlags();
+// SH}
 					doTextRemove(pos, tokenEnd - pos, editGroup);
 					doTextInsert(pos, newVal, editGroup);
 					pos = tokenEnd;
