protect against an NPE seen in the logs (example involved a generic role with several errors).
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/ast/BaseCallMessageSend.java b/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/ast/BaseCallMessageSend.java
index 54ec0e9..ca914ab 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/ast/BaseCallMessageSend.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/ast/BaseCallMessageSend.java
@@ -44,6 +44,7 @@
 import org.eclipse.jdt.internal.compiler.lookup.TypeBinding;
 import org.eclipse.jdt.internal.compiler.problem.ProblemReporter;
 import org.eclipse.objectteams.otdt.core.compiler.IOTConstants;
+import org.eclipse.objectteams.otdt.core.exceptions.InternalCompilerError;
 import org.eclipse.objectteams.otdt.internal.core.compiler.lookup.SyntheticBaseCallSurrogate;
 import org.eclipse.objectteams.otdt.internal.core.compiler.mappings.CallinImplementorDyn;
 import org.eclipse.objectteams.otdt.internal.core.compiler.model.MethodModel;
@@ -276,6 +277,11 @@
 			}
 		}
 		MethodBinding callinMethod = callinMethodDecl.binding;
+		if (callinMethod == null) {
+			if (callinMethodDecl.ignoreFurtherInvestigation)
+				return;
+			throw new InternalCompilerError("Unresolved method without an error"); //$NON-NLS-1$
+		}
 		// check name match:
 		if (!CharOperation.equals(this._sendOrig.selector, callinMethod.selector))
 			scope.problemReporter().baseCallNotSameMethod(callinMethodDecl, this._sendOrig);