diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/MessageSend.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/MessageSend.java
index c91c8d6..7ada148 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/MessageSend.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/MessageSend.java
@@ -185,6 +185,7 @@
 	private boolean isDecapsulation = false;
 	// special case: the role method call in a method pushed out to the enclosing team needs special resolving
 	public boolean isPushedOutRoleMethodCall = false;
+	public boolean isGenerated = false;
 // SH}
 
 public FlowInfo analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo) {
@@ -838,6 +839,9 @@
 		argumentTypes = new TypeBinding[length];
 		for (int i = 0; i < length; i++){
 			Expression argument = this.arguments[i];
+//{ObjectTeams: keep pre-resolved binding inside generated code:
+		  if (!this.isGenerated)
+// SH}
 			if (this.arguments[i].resolvedType != null) 
 				this.arguments[i].unresolve(); // some cleanup before second attempt
 			if (argument instanceof CastExpression) {
@@ -845,10 +849,17 @@
 				argsContainCast = true;
 			}
 			argument.setExpressionContext(INVOCATION_CONTEXT);
-//{ObjectTeams: FIXME: stale: arguments might already be resolved, see e.g. CastExpression.createRoleCheck SH}
+//{ObjectTeams: arguments might already be resolved, see e.g. CastExpression.createRoleCheck
+		  if (argument.resolvedType != null) {
+			argumentTypes[i] = argument.resolvedType;
+		  } else {
+// orig:
 			if ((argumentTypes[i] = argument.resolveType(scope)) == null){
 				argHasError = true;
 			}
+// :giro
+		  }
+// SH}
 			if (sourceLevel >= ClassFileConstants.JDK1_8 && argument.isPolyExpression())
 				polyExpressionSeen = true;
 		}
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/util/AstGenerator.java b/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/util/AstGenerator.java
index 653605d..85b4763 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/util/AstGenerator.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/util/AstGenerator.java
@@ -749,6 +749,7 @@
 
 	public MessageSend messageSend(Expression receiver, char[] selector, Expression[] parameters) {
 		MessageSend messageSend = new MessageSend();
+		messageSend.isGenerated = true;
 		messageSend.sourceStart = this.sourceStart;
 		messageSend.sourceEnd   = this.sourceEnd;
 		messageSend.statementEnd = this.sourceEnd;
@@ -790,6 +791,7 @@
 				return this.resolvedType;
 			}
 		};
+		messageSend.isGenerated = true;
 		messageSend.sourceStart = this.sourceStart;
 		messageSend.sourceEnd   = this.sourceEnd;
 		messageSend.statementEnd = this.sourceEnd;
@@ -809,6 +811,7 @@
 				return this.resolvedType = resolvedReturn;
 			}
 		};
+		messageSend.isGenerated = true;
 		messageSend.sourceStart = this.sourceStart;
 		messageSend.sourceEnd   = this.sourceEnd;
 		messageSend.statementEnd = this.sourceEnd;
@@ -836,6 +839,7 @@
 				return this.resolvedType = resolvedReturn;
 			}
 		};
+		messageSend.isGenerated = true;
 		messageSend.sourceStart = this.sourceStart;
 		messageSend.sourceEnd   = this.sourceEnd;
 		messageSend.statementEnd = this.sourceEnd;
