diff --git a/framework/src/main/java/org/apache/felix/framework/URLHandlers.java b/framework/src/main/java/org/apache/felix/framework/URLHandlers.java
index f67b048..ecbda1d 100644
--- a/framework/src/main/java/org/apache/felix/framework/URLHandlers.java
+++ b/framework/src/main/java/org/apache/felix/framework/URLHandlers.java
@@ -602,12 +602,15 @@
         Class targetClass = null;
         for (int i = 0; i < stack.length; i++)
         {
-            if ((stack[i].getClassLoader() != null) && 
-                "org.apache.felix.framework.searchpolicy.ModuleImpl$ModuleClassLoader".equals(
-                stack[i].getClassLoader().getClass().getName()))
+            if (stack[i].getClassLoader() != null) 
             {
-                targetClass = stack[i];
-                break;
+                String name = stack[i].getClassLoader().getClass().getName();
+                if ("org.apache.felix.framework.ModuleImpl$ModuleClassLoader".equals(name) 
+                    || "org.apache.felix.framework.searchpolicy.ContentClassLoader".equals(name))
+                {
+                    targetClass = stack[i];
+                    break;
+                }
             }
         }
         
diff --git a/framework/src/main/java/org/apache/felix/framework/URLHandlersBundleStreamHandler.java b/framework/src/main/java/org/apache/felix/framework/URLHandlersBundleStreamHandler.java
index 8d06590..bcfd010 100644
--- a/framework/src/main/java/org/apache/felix/framework/URLHandlersBundleStreamHandler.java
+++ b/framework/src/main/java/org/apache/felix/framework/URLHandlersBundleStreamHandler.java
@@ -19,6 +19,7 @@
 package org.apache.felix.framework;
 
 import java.io.IOException;
+import java.lang.reflect.Constructor;
 import java.net.*;
 
 import org.apache.felix.framework.util.SecureAction;
@@ -60,9 +61,11 @@
                 Class targetClass = framework.getClass().getClassLoader().loadClass(
                     URLHandlersBundleURLConnection.class.getName());
                 
-                return (URLConnection) m_action.invoke(m_action.getConstructor(targetClass, 
-                    new Class[]{URL.class, framework.getClass().getClassLoader().loadClass(
-                    Felix.class.getName())}), new Object[]{url, framework});
+                Constructor constructor = m_action.getConstructor(targetClass, 
+                        new Class[]{URL.class, framework.getClass().getClassLoader().loadClass(
+                                Felix.class.getName())});
+                m_action.setAccesssible(constructor);
+                return (URLConnection) m_action.invoke(constructor, new Object[]{url, framework});
             }
             catch (Exception ex)
             {
