two small fixes on top of the latest patch re Bug 331877 -  [compiler][generics] implicit inheritance must apply substitution for type variables from outer scope
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/bytecode/CallinMethodMappingsAttribute.java b/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/bytecode/CallinMethodMappingsAttribute.java
index 608f51d..ad324b3 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/bytecode/CallinMethodMappingsAttribute.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/bytecode/CallinMethodMappingsAttribute.java
@@ -524,9 +524,11 @@
 		ReferenceBinding currentType = roleBinding;
 		char[] roleSignature = mapping._roleSignature;
 		// generics:
-		ReferenceBinding tsuperRoleBinding = findTSuperTypeFromModel(roleBinding.roleModel, superDeclaringType.getBinding());
-		if (tsuperRoleBinding.isParameterizedType())
-			roleSignature = superDeclaringType.substituteSignature((ParameterizedTypeBinding)tsuperRoleBinding, mapping._roleSelector, roleSignature);
+		if (superDeclaringType != null) {
+			ReferenceBinding tsuperRoleBinding = findTSuperTypeFromModel(roleBinding.roleModel, superDeclaringType.getBinding());
+			if (tsuperRoleBinding.isParameterizedType())
+				roleSignature = superDeclaringType.substituteSignature((ParameterizedTypeBinding)tsuperRoleBinding, mapping._roleSelector, roleSignature);
+		}
 		if (result.callinModifier == TerminalTokens.TokenNamereplace) {
 			// ignore generalized return by truncating the signature:
 			int closePos = CharOperation.indexOf(')', roleSignature);
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/bytecode/StaticReplaceBindingsAttribute.java b/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/bytecode/StaticReplaceBindingsAttribute.java
index a19ff58..2d2e503 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/bytecode/StaticReplaceBindingsAttribute.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/bytecode/StaticReplaceBindingsAttribute.java
@@ -31,6 +31,7 @@
 import org.eclipse.objectteams.otdt.internal.core.compiler.ast.MethodSpec;
 import org.eclipse.objectteams.otdt.internal.core.compiler.lookup.RoleTypeBinding;
 import org.eclipse.objectteams.otdt.internal.core.compiler.model.ModelElement;
+import org.eclipse.objectteams.otdt.internal.core.compiler.model.TypeModel;
 
 /**
  * MIGRATION_STATE: complete.
@@ -253,7 +254,8 @@
 	/**
 	 * Merge two attributes encoding method mappings from different roles of the same team.
 	 */
-	public void merge(ModelElement model, AbstractAttribute superDeclaringType, ModelElement otherModel)
+	@Override
+	public void merge(ModelElement model, AbstractAttribute superDeclaringType, TypeModel sourceDeclaringType)
 	{
 		assert superDeclaringType instanceof StaticReplaceBindingsAttribute;
 		StaticReplaceBindingsAttribute otherSRBA = (StaticReplaceBindingsAttribute)superDeclaringType;