diff --git a/pom.xml b/pom.xml
index 3b36466..9d41ad3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -106,6 +106,12 @@
       <version>${mavenVersion}</version>
     </dependency>
     <dependency>
+      <groupId>commons-io</groupId>
+      <artifactId>commons-io</artifactId>
+      <version>2.6</version>
+    </dependency>
+    
+    <dependency>
       <groupId>org.apache.maven</groupId>
       <artifactId>maven-artifact</artifactId>
       <version>${mavenVersion}</version>
diff --git a/src/main/java/org/apache/maven/shared/dependency/analyzer/asm/DependencyClassFileVisitor.java b/src/main/java/org/apache/maven/shared/dependency/analyzer/asm/DependencyClassFileVisitor.java
index 1c594ae..e0b41b0 100644
--- a/src/main/java/org/apache/maven/shared/dependency/analyzer/asm/DependencyClassFileVisitor.java
+++ b/src/main/java/org/apache/maven/shared/dependency/analyzer/asm/DependencyClassFileVisitor.java
@@ -19,6 +19,7 @@
  * under the License.
  */
 
+import org.apache.commons.io.IOUtils;
 import org.apache.maven.shared.dependency.analyzer.ClassFileVisitor;
 import org.objectweb.asm.AnnotationVisitor;
 import org.objectweb.asm.ClassReader;
@@ -62,9 +63,10 @@
     {
         try
         {
-            ClassReader reader = new ClassReader( in );
+            byte[] byteCode = IOUtils.toByteArray( in );
+            ClassReader reader = new ClassReader( byteCode );
 
-            final Set<String> constantPoolClassRefs = ConstantPoolParser.getConstantPoolClassReferences( reader.b );
+            final Set<String> constantPoolClassRefs = ConstantPoolParser.getConstantPoolClassReferences( byteCode );
             for ( String string : constantPoolClassRefs )
             {
                 resultCollector.addName( string );
