diff --git a/framework/src/main/java/org/apache/felix/framework/Felix.java b/framework/src/main/java/org/apache/felix/framework/Felix.java
index 7680824..0a30700 100644
--- a/framework/src/main/java/org/apache/felix/framework/Felix.java
+++ b/framework/src/main/java/org/apache/felix/framework/Felix.java
@@ -1003,8 +1003,8 @@
         {
             throw new IllegalStateException("The bundle is uninstalled.");
         }
-        return ((ContentLoaderImpl) bundle.getInfo().getCurrentModule()
-            .getContentLoader()).getResourceFromContent(name);
+        return bundle.getInfo().getCurrentModule()
+            .getContentLoader().getResourceFromContent(name);
     }
 
     /**
diff --git a/framework/src/main/java/org/apache/felix/framework/FindEntriesEnumeration.java b/framework/src/main/java/org/apache/felix/framework/FindEntriesEnumeration.java
index 62ef743..1f73b6a 100644
--- a/framework/src/main/java/org/apache/felix/framework/FindEntriesEnumeration.java
+++ b/framework/src/main/java/org/apache/felix/framework/FindEntriesEnumeration.java
@@ -119,9 +119,8 @@
                     if (checkSubstring(m_filePattern, lastElement))
                     {
                         // Convert entry name into an entry URL.
-                        return ((ContentLoaderImpl) m_bundle.getInfo()
-                            .getCurrentModule().getContentLoader())
-                                .getResourceFromContent(entryName);
+                        return m_bundle.getInfo().getCurrentModule()
+                            .getContentLoader().getResourceFromContent(entryName);
                     }
                 }
             }
diff --git a/framework/src/main/java/org/apache/felix/framework/SystemBundleContentLoader.java b/framework/src/main/java/org/apache/felix/framework/SystemBundleContentLoader.java
index 2712065..2809b2d 100644
--- a/framework/src/main/java/org/apache/felix/framework/SystemBundleContentLoader.java
+++ b/framework/src/main/java/org/apache/felix/framework/SystemBundleContentLoader.java
@@ -91,6 +91,12 @@
         return getClass().getClassLoader().getResource(name);
     }
 
+    public URL getResourceFromContent(String name)
+    {
+        // There is no content for the system bundle, so return null.
+        return null;
+    }
+
     public boolean hasInputStream(String urlPath) throws IOException
     {
         return (getClass().getClassLoader().getResource(urlPath) != null);
diff --git a/framework/src/main/java/org/apache/felix/framework/searchpolicy/ContentLoaderImpl.java b/framework/src/main/java/org/apache/felix/framework/searchpolicy/ContentLoaderImpl.java
index d70d0b5..de81ed0 100644
--- a/framework/src/main/java/org/apache/felix/framework/searchpolicy/ContentLoaderImpl.java
+++ b/framework/src/main/java/org/apache/felix/framework/searchpolicy/ContentLoaderImpl.java
@@ -176,7 +176,8 @@
         return v.elements();
     }
 
-    // TODO: API: Investigate making this an API call.
+    // TODO: API: Investigate how to handle this better, perhaps we need
+    // multiple URL policies, one for content -- one for class path.
     public URL getResourceFromContent(String name)
     {
         URL url = null;
diff --git a/framework/src/main/java/org/apache/felix/moduleloader/IContentLoader.java b/framework/src/main/java/org/apache/felix/moduleloader/IContentLoader.java
index 5ea5ffd..746388e 100644
--- a/framework/src/main/java/org/apache/felix/moduleloader/IContentLoader.java
+++ b/framework/src/main/java/org/apache/felix/moduleloader/IContentLoader.java
@@ -37,6 +37,7 @@
 
     public Class getClass(String name);
     public URL getResource(String name);
+    public URL getResourceFromContent(String name);
 
     public boolean hasInputStream(String urlPath)
         throws IOException;
