diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java
index 7bef1ef..6bb26d9 100644
--- a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java
+++ b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/AsmAdaptor.java
@@ -81,6 +81,20 @@
         }
     }
 
+    public static void write(BCClass bc, OutputStream os) throws IOException {
+        if (bc.getMajorVersion() < Java7_MajorVersion) {
+            bc.write(os);
+        }
+        else {
+            try {
+                writeJava7(bc, os);
+            } finally {
+                os.flush();
+                os.close();
+            }
+        }
+    }
+
     public static byte[] toByteArray(BCClass bc, byte[] returnBytes) throws IOException {
         if (bc.getMajorVersion() >= Java7_MajorVersion) {
             returnBytes = toJava7ByteArray(bc, returnBytes);
diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/ManagedClassSubclasser.java b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/ManagedClassSubclasser.java
index fab02ab..0a7d376 100644
--- a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/ManagedClassSubclasser.java
+++ b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/ManagedClassSubclasser.java
@@ -18,6 +18,7 @@
  */
 package org.apache.openjpa.enhance;
 
+import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.io.IOException;
 import java.util.ArrayList;
@@ -142,6 +143,8 @@
             if (redefine) {
                 enhancer.setRedefine(true);
             }
+
+            // we need to create subclasses because class retransform doesn't allow to change the interfaces of a previously loaded class
             enhancer.setCreateSubclass(true);
             enhancer.setAddDefaultConstructor(true);
 
@@ -276,7 +279,9 @@
             if (enhancer.isAlreadyRedefined())
                 ints.add(bc.getType());
             else {
-                map.put(bc.getType(), bc.toByteArray());
+                ByteArrayOutputStream baos = new ByteArrayOutputStream();
+                AsmAdaptor.write(bc, baos);
+                map.put(bc.getType(), baos.toByteArray());
                 debugBytecodes(bc);
             }
         } else {
