don't ever copy role, if a binary one exists (let BuildManager manage this situation)
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/statemachine/copyinheritance/CopyInheritance.java b/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/statemachine/copyinheritance/CopyInheritance.java
index be1875e..486d52c 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/statemachine/copyinheritance/CopyInheritance.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/statemachine/copyinheritance/CopyInheritance.java
@@ -570,6 +570,8 @@
 	    			subRoleDecl = findMemberType(subTeamDecl, superRole.sourceName);
 	    		if (subRoleDecl != null && (subRoleDecl.binding.tagBits & TagBits.BeginHierarchyCheck) == 0)
 	    			subRoleDecl.scope.connectTypeHierarchyWithoutMembers();
+	    		if (subRoleDecl == null) // still?
+	    			return null; // assume recompile has been scheduled
 	    	}
 
 		    // If type doesn't exist, create now