Index: pkg-clojure/build.xml
===================================================================
--- pkg-clojure.orig/build.xml	2014-06-14 11:46:43.985057347 +0900
+++ pkg-clojure/build.xml	2014-06-14 11:46:43.977058066 +0900
@@ -37,6 +37,7 @@
   <target name="compile-java" depends="init"
           description="Compile Java sources.">
     <javac srcdir="${jsrc}" destdir="${build}" includeJavaRuntime="yes"
+           classpath="/usr/share/java/asm4.jar:/usr/share/java/asm4-commons.jar"
            includeAntRuntime="false"
            debug="true" source="1.6" target="1.6"/>
   </target>
@@ -44,7 +45,7 @@
   <target name="compile-clojure"
           description="Compile Clojure sources.">
     <java classname="clojure.lang.Compile"
-          classpath="${maven.compile.classpath}:${build}:${cljsrc}"
+          classpath="/usr/share/java/asm4.jar:/usr/share/java/asm4-commons.jar:${maven.compile.classpath}:${build}:${cljsrc}"
           failonerror="true"
           fork="true">
       <sysproperty key="clojure.compile.path" value="${build}"/>
@@ -86,7 +87,7 @@
     <javac srcdir="${jtestsrc}" destdir="${test-classes}" includeJavaRuntime="yes"
            debug="true" source="1.6" target="1.6" includeantruntime="no"/>
     <java classname="clojure.lang.Compile"
-          classpath="${test-classes}:${test}:${build}:${cljsrc}"
+          classpath="/usr/share/java/asm4.jar:/usr/share/java/asm4-commons.jar:${test-classes}:${test}:${build}:${cljsrc}"
           failonerror="true"
 	  fork="true">
       <sysproperty key="clojure.compile.path" value="${test-classes}"/>
@@ -105,6 +106,8 @@
     <java classname="clojure.main" failonerror="true" fork="true">
       <classpath>
         <pathelement path="${maven.test.classpath}"/>
+        <path location="/usr/share/java/asm4.jar"/>
+        <path location="/usr/share/java/asm4-commons.jar"/>
         <path location="${test-classes}"/>
         <path location="${test}"/>
         <path location="${build}"/>
@@ -126,7 +129,7 @@
       </fileset>
       <manifest>
         <attribute name="Main-Class" value="clojure.main"/>
-        <attribute name="Class-Path" value="."/>
+        <attribute name="Class-Path" value="asm4.jar asm4-commons.jar jsr166y.jar"/>
       </manifest>
     </jar>
     <copy file="${clojure_jar}" tofile="${clojure_noversion_jar}"/>
Index: pkg-clojure/src/clj/clojure/core.clj
===================================================================
--- pkg-clojure.orig/src/clj/clojure/core.clj	2014-06-14 11:46:43.985057347 +0900
+++ pkg-clojure/src/clj/clojure/core.clj	2014-06-14 11:46:43.977058066 +0900
@@ -4999,10 +4999,10 @@
                    (.getAnnotation c java.lang.annotation.Retention)] 
           (= (.value r) java.lang.annotation.RetentionPolicy/RUNTIME)))))
 
-(defn- descriptor [^Class c] (clojure.asm.Type/getDescriptor c))
+(defn- descriptor [^Class c] (org.objectweb.asm.Type/getDescriptor c))
 
 (declare process-annotation)
-(defn- add-annotation [^clojure.asm.AnnotationVisitor av name v]
+(defn- add-annotation [^org.objectweb.asm.AnnotationVisitor av name v]
   (cond
    (vector? v) (let [avec (.visitArray av name)]
                  (doseq [vval v]
@@ -5012,7 +5012,7 @@
                  (cond 
                   (instance? java.lang.Enum ev)
                   (.visitEnum av name (descriptor (class ev)) (str ev))
-                  (class? ev) (.visit av name (clojure.asm.Type/getType ev))
+                  (class? ev) (.visit av name (org.objectweb.asm.Type/getType ev))
                   :else (throw (IllegalArgumentException. 
                                 (str "Unsupported annotation value: " v " of class " (class ev))))))
    (seq? v) (let [[nested nv] v
Index: pkg-clojure/src/clj/clojure/core_proxy.clj
===================================================================
--- pkg-clojure.orig/src/clj/clojure/core_proxy.clj	2014-06-14 11:46:43.985057347 +0900
+++ pkg-clojure/src/clj/clojure/core_proxy.clj	2014-06-14 11:46:43.977058066 +0900
@@ -11,9 +11,9 @@
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;; proxy ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 (import
- '(clojure.asm ClassWriter ClassVisitor Opcodes Type) 
+ '(org.objectweb.asm ClassWriter ClassVisitor Opcodes Type) 
  '(java.lang.reflect Modifier Constructor)
- '(clojure.asm.commons Method GeneratorAdapter)
+ '(org.objectweb.asm.commons Method GeneratorAdapter)
  '(clojure.lang IProxy Reflector DynamicClassLoader IPersistentMap PersistentHashMap RT))
 
 (defn method-sig [^java.lang.reflect.Method meth]
Index: pkg-clojure/src/clj/clojure/genclass.clj
===================================================================
--- pkg-clojure.orig/src/clj/clojure/genclass.clj	2014-06-14 11:46:43.985057347 +0900
+++ pkg-clojure/src/clj/clojure/genclass.clj	2014-06-14 11:46:43.977058066 +0900
@@ -9,8 +9,8 @@
 (in-ns 'clojure.core)
 
 (import '(java.lang.reflect Modifier Constructor)
-        '(clojure.asm ClassWriter ClassVisitor Opcodes Type)
-        '(clojure.asm.commons Method GeneratorAdapter)
+        '(org.objectweb.asm ClassWriter ClassVisitor Opcodes Type)
+        '(org.objectweb.asm.commons Method GeneratorAdapter)
         '(clojure.lang IPersistentMap))
 
 ;(defn method-sig [^java.lang.reflect.Method meth]
Index: pkg-clojure/src/jvm/clojure/lang/Compiler.java
===================================================================
--- pkg-clojure.orig/src/jvm/clojure/lang/Compiler.java	2014-06-14 11:46:43.985057347 +0900
+++ pkg-clojure/src/jvm/clojure/lang/Compiler.java	2014-06-14 11:46:43.981057707 +0900
@@ -12,11 +12,13 @@
 
 package clojure.lang;
 
-//*
+/*
+
+import org.objectweb.asm.*;
+import org.objectweb.asm.commons.GeneratorAdapter;
+import org.objectweb.asm.commons.Method;
 
-import clojure.asm.*;
-import clojure.asm.commons.GeneratorAdapter;
-import clojure.asm.commons.Method;
+*/
 
 import java.io.*;
 import java.lang.reflect.Constructor;
@@ -26,14 +28,15 @@
 import java.util.regex.Matcher;
 
 //*/
-/*
+///*
 
 import org.objectweb.asm.*;
 import org.objectweb.asm.commons.Method;
 import org.objectweb.asm.commons.GeneratorAdapter;
+/*
 import org.objectweb.asm.util.TraceClassVisitor;
 import org.objectweb.asm.util.CheckClassAdapter;
-//*/
+*/
 
 public class Compiler implements Opcodes{
 
Index: pkg-clojure/src/jvm/clojure/lang/Intrinsics.java
===================================================================
--- pkg-clojure.orig/src/jvm/clojure/lang/Intrinsics.java	2014-06-14 11:46:43.985057347 +0900
+++ pkg-clojure/src/jvm/clojure/lang/Intrinsics.java	2014-06-14 11:46:43.981057707 +0900
@@ -12,7 +12,7 @@
 
 package clojure.lang;
 
-import clojure.asm.Opcodes;
+import org.objectweb.asm.Opcodes;
 
 public class Intrinsics implements Opcodes{
 private static Object[] oa(Object... arr){
Index: pkg-clojure/src/clj/clojure/reflect/java.clj
===================================================================
--- pkg-clojure.orig/src/clj/clojure/reflect/java.clj	2014-06-14 11:46:43.985057347 +0900
+++ pkg-clojure/src/clj/clojure/reflect/java.clj	2014-06-14 11:46:43.981057707 +0900
@@ -11,7 +11,7 @@
 
 (require '[clojure.set :as set]
          '[clojure.string :as str])
-(import '[clojure.asm ClassReader ClassVisitor Type Opcodes]
+(import '[org.objectweb.asm ClassReader ClassVisitor Type Opcodes]
          '[java.lang.reflect Modifier]
          java.io.InputStream)
 
Index: pkg-clojure/test/clojure/test_clojure/reflect.clj
===================================================================
--- pkg-clojure.orig/test/clojure/test_clojure/reflect.clj	2014-06-14 11:46:43.985057347 +0900
+++ pkg-clojure/test/clojure/test_clojure/reflect.clj	2014-06-14 11:46:43.981057707 +0900
@@ -25,7 +25,7 @@
 
 (deftest field-descriptor->class-symbol-test
   (are [s d] (= s (@#'reflect/field-descriptor->class-symbol d))
-       'clojure.asm.Type<><> "[[Lclojure/asm/Type;"
+       'org.objectweb.asm.Type<><> "[[Lorg.objectweb/asm/Type;"
        'int "I"
        'java.lang.Object "Ljava.lang.Object;"))
 
Index: pkg-clojure/pom.xml
===================================================================
--- pkg-clojure.orig/pom.xml	2014-06-14 11:46:43.985057347 +0900
+++ pkg-clojure/pom.xml	2014-06-14 11:58:10.342650895 +0900
@@ -57,6 +57,16 @@
         </exclusion>
       </exclusions>
     </dependency>
+    <dependency>
+      <groupId>org.ow2.asm</groupId>
+      <artifactId>asm</artifactId>
+      <version>5.0.3</version>
+    </dependency>
+    <dependency>
+      <groupId>org.ow2.asm</groupId>
+      <artifactId>asm-commons</artifactId>
+      <version>5.0.3</version>
+    </dependency>
   </dependencies>
 
   <build>
