I'm confused by this latest commit. As far as I can tell, OpenJPA only has a dependency on ASM 3.2 (kernel's pom.xml). Although I agree that the changes you are introducing probably will help ASM 4 usage when we get there, I don't understand why this change was necessary when we haven't moved to ASM 4 yet... And, I'm not clear on this usage of the org.apache.xbean.asm and org.apache.xbean.asm4 package. So, we're modifying OpenJPA code everytime some user of OpenJPA has a shaded version of ASM? That doesn't sound very scalable... What am I missing?