diff --git a/asm4/pom.xml b/asm/pom.xml
similarity index 96%
rename from asm4/pom.xml
rename to asm/pom.xml
index aa133e1..ebebf0f 100644
--- a/asm4/pom.xml
+++ b/asm/pom.xml
@@ -26,9 +26,9 @@
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>commons-proxy2-asm4</artifactId>
-    <name>Commons Proxy ASM4 Proxies Module</name>
-    <description>Proxies based on classes dynamically generated using ASM v4
+    <artifactId>commons-proxy2-asm</artifactId>
+    <name>Commons Proxy ASM Proxies Module</name>
+    <description>Proxies based on classes dynamically generated using ASM v4+
     </description>
     <dependencies>
         <dependency>
diff --git a/asm4/src/main/java/org/apache/commons/proxy2/asm4/ASM4ProxyFactory.java b/asm/src/main/java/org/apache/commons/proxy2/asm/ASMProxyFactory.java
similarity index 98%
rename from asm4/src/main/java/org/apache/commons/proxy2/asm4/ASM4ProxyFactory.java
rename to asm/src/main/java/org/apache/commons/proxy2/asm/ASMProxyFactory.java
index 4d9f2cc..eee1d0a 100644
--- a/asm4/src/main/java/org/apache/commons/proxy2/asm4/ASM4ProxyFactory.java
+++ b/asm/src/main/java/org/apache/commons/proxy2/asm/ASMProxyFactory.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.proxy2.asm4;
+package org.apache.commons.proxy2.asm;
 
 import java.io.Serializable;
 import java.lang.reflect.InvocationTargetException;
@@ -39,7 +39,7 @@
 import org.objectweb.asm.Type;
 import org.objectweb.asm.commons.GeneratorAdapter;
 
-public class ASM4ProxyFactory extends AbstractSubclassingProxyFactory
+public class ASMProxyFactory extends AbstractSubclassingProxyFactory
 {
     private static final ProxyClassCache PROXY_CLASS_CACHE = new ProxyClassCache(new ProxyGenerator());
 
@@ -83,7 +83,7 @@
     private static class ProxyGenerator extends AbstractProxyClassGenerator implements Opcodes
     {
         private static final AtomicInteger CLASS_NUMBER = new AtomicInteger(0);
-        private static final String CLASSNAME_PREFIX = "CommonsProxyASM4_";
+        private static final String CLASSNAME_PREFIX = "CommonsProxyASM_";
         private static final String HANDLER_NAME = "__handler";
         private static final Type INVOKER_TYPE = Type.getType(Invoker.class);
 
diff --git a/asm4/src/main/resources/META-INF/services/org.apache.commons.proxy2.ProxyFactory b/asm/src/main/resources/META-INF/services/org.apache.commons.proxy2.ProxyFactory
similarity index 94%
rename from asm4/src/main/resources/META-INF/services/org.apache.commons.proxy2.ProxyFactory
rename to asm/src/main/resources/META-INF/services/org.apache.commons.proxy2.ProxyFactory
index 529137c..3d9116d 100644
--- a/asm4/src/main/resources/META-INF/services/org.apache.commons.proxy2.ProxyFactory
+++ b/asm/src/main/resources/META-INF/services/org.apache.commons.proxy2.ProxyFactory
@@ -14,4 +14,4 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 #
-org.apache.commons.proxy2.asm4.ASM4ProxyFactory
+org.apache.commons.proxy2.asm.ASMProxyFactory
diff --git a/asm4/src/site/markdown/index.md b/asm/src/site/markdown/index.md
similarity index 100%
rename from asm4/src/site/markdown/index.md
rename to asm/src/site/markdown/index.md
diff --git a/asm4/src/test/java/org/apache/commons/proxy2/asm4/TestAsm4ProxyFactory.java b/asm/src/test/java/org/apache/commons/proxy2/asm/TestAsmProxyFactory.java
similarity index 68%
rename from asm4/src/test/java/org/apache/commons/proxy2/asm4/TestAsm4ProxyFactory.java
rename to asm/src/test/java/org/apache/commons/proxy2/asm/TestAsmProxyFactory.java
index 3b1e815..934c996 100644
--- a/asm4/src/test/java/org/apache/commons/proxy2/asm4/TestAsm4ProxyFactory.java
+++ b/asm/src/test/java/org/apache/commons/proxy2/asm/TestAsmProxyFactory.java
@@ -14,13 +14,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.proxy2.asm4;
+package org.apache.commons.proxy2.asm;
 
 import org.apache.commons.proxy2.AbstractSubclassingProxyFactoryTestCase;
 
-public class TestAsm4ProxyFactory extends AbstractSubclassingProxyFactoryTestCase
+public class TestAsmProxyFactory extends AbstractSubclassingProxyFactoryTestCase
 {
-    //**********************************************************************************************************************
-    // Constructors
-    //**********************************************************************************************************************
 }
diff --git a/dist/pom.xml b/dist/pom.xml
index 13643c6..e50e76e 100644
--- a/dist/pom.xml
+++ b/dist/pom.xml
@@ -55,16 +55,16 @@
     </dependency>
     <dependency>
       <groupId>org.apache.commons</groupId>
-      <artifactId>commons-proxy2-asm4</artifactId>
+      <artifactId>commons-proxy2-asm</artifactId>
     </dependency>
     <dependency>
       <groupId>org.apache.commons</groupId>
-      <artifactId>commons-proxy2-asm4</artifactId>
+      <artifactId>commons-proxy2-asm</artifactId>
       <classifier>sources</classifier>
     </dependency>
     <dependency>
       <groupId>org.apache.commons</groupId>
-      <artifactId>commons-proxy2-asm4</artifactId>
+      <artifactId>commons-proxy2-asm</artifactId>
       <classifier>javadoc</classifier>
     </dependency>
     <dependency>
diff --git a/pom.xml b/pom.xml
index 425db8a..34fcc6f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -164,18 +164,18 @@
       </dependency>
       <dependency>
         <groupId>${project.groupId}</groupId>
-        <artifactId>commons-proxy2-asm4</artifactId>
+        <artifactId>commons-proxy2-asm</artifactId>
         <version>${project.version}</version>
       </dependency>
       <dependency>
         <groupId>${project.groupId}</groupId>
-        <artifactId>commons-proxy2-asm4</artifactId>
+        <artifactId>commons-proxy2-asm</artifactId>
         <classifier>sources</classifier>
         <version>${project.version}</version>
       </dependency>
       <dependency>
         <groupId>${project.groupId}</groupId>
-        <artifactId>commons-proxy2-asm4</artifactId>
+        <artifactId>commons-proxy2-asm</artifactId>
         <classifier>javadoc</classifier>
         <version>${project.version}</version>
       </dependency>
@@ -703,7 +703,7 @@
     <module>build-tools</module>
     <module>core</module>
     <module>jdk</module>
-    <module>asm4</module>
+    <module>asm</module>
     <module>javassist</module>
     <module>cglib</module>
     <module>test</module>
diff --git a/test/pom.xml b/test/pom.xml
index 9d30bfb..81c7acd 100644
--- a/test/pom.xml
+++ b/test/pom.xml
@@ -52,7 +52,7 @@
         </dependency>
         <dependency>
             <groupId>${project.groupId}</groupId>
-            <artifactId>commons-proxy2-asm4</artifactId>
+            <artifactId>commons-proxy2-asm</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
diff --git a/test/src/test/java/org/apache/commons/proxy2/stub/AbstractProxyFactoryAgnosticTest.java b/test/src/test/java/org/apache/commons/proxy2/stub/AbstractProxyFactoryAgnosticTest.java
index 713a835..dcf016b 100755
--- a/test/src/test/java/org/apache/commons/proxy2/stub/AbstractProxyFactoryAgnosticTest.java
+++ b/test/src/test/java/org/apache/commons/proxy2/stub/AbstractProxyFactoryAgnosticTest.java
@@ -20,7 +20,7 @@
 import java.util.List;
 
 import org.apache.commons.proxy2.ProxyFactory;
-import org.apache.commons.proxy2.asm4.ASM4ProxyFactory;
+import org.apache.commons.proxy2.asm.ASMProxyFactory;
 import org.apache.commons.proxy2.cglib.CglibProxyFactory;
 import org.apache.commons.proxy2.javassist.JavassistProxyFactory;
 import org.apache.commons.proxy2.jdk.JdkProxyFactory;
@@ -43,7 +43,7 @@
         result.add(new Object[] { new JdkProxyFactory() });
         result.add(new Object[] { new CglibProxyFactory() });
         result.add(new Object[] { new JavassistProxyFactory() });
-        result.add(new Object[] { new ASM4ProxyFactory() });
+        result.add(new Object[] { new ASMProxyFactory() });
         return result;
     }
 
