diff --git a/framework/src/main/java/org/apache/felix/framework/BundleRevisionImpl.java b/framework/src/main/java/org/apache/felix/framework/BundleRevisionImpl.java
index 6d0e694..8c8c548 100644
--- a/framework/src/main/java/org/apache/felix/framework/BundleRevisionImpl.java
+++ b/framework/src/main/java/org/apache/felix/framework/BundleRevisionImpl.java
@@ -28,6 +28,7 @@
 import java.util.Enumeration;
 import java.util.List;
 import java.util.Map;
+
 import org.apache.felix.framework.cache.Content;
 import org.apache.felix.framework.util.FelixConstants;
 import org.apache.felix.framework.util.SecureAction;
@@ -126,7 +127,7 @@
         // system bundle directly later on.
         m_manifestVersion = mp.getManifestVersion();
         m_version = mp.getBundleVersion();
-        m_declaredCaps = mp.isExtension() ? Collections.EMPTY_LIST : mp.getCapabilities();
+        m_declaredCaps = mp.getCapabilities();
         m_declaredReqs = mp.getRequirements();
         m_declaredNativeLibs = mp.getLibraries();
         m_declaredActivationPolicy = mp.getActivationPolicy();
diff --git a/framework/src/test/java/org/apache/felix/framework/RequirementsCapabilitiesTest.java b/framework/src/test/java/org/apache/felix/framework/RequirementsCapabilitiesTest.java
index 8cc34e6..ecb3941 100644
--- a/framework/src/test/java/org/apache/felix/framework/RequirementsCapabilitiesTest.java
+++ b/framework/src/test/java/org/apache/felix/framework/RequirementsCapabilitiesTest.java
@@ -192,6 +192,30 @@
         assertCapsEquals(expectedFWCap, bwpCaps2.get(0));
     }
 
+    public void testIdentityCapabilityFrameworkExtension() throws Exception
+    {
+        String femf = "Bundle-SymbolicName: fram.ext\n"
+                + "Bundle-Version: 1.2.3.test\n"
+                + "Fragment-Host: system.bundle; extension:=framework\n"
+                + "Bundle-ManifestVersion: 2\n"
+                + "Export-Package: org.foo.bar;version=\"2.0.0\"\n";
+        File feFile = createBundle(femf);
+
+        Bundle fe = felix.getBundleContext().installBundle(feFile.toURI().toASCIIString());
+
+        BundleRevision fbr = fe.adapt(BundleRevision.class);
+
+        List<Capability> feCaps = fbr.getCapabilities("osgi.identity");
+        assertEquals(1, feCaps.size());
+        Map<String, Object> expectedFEAttrs = new HashMap<String, Object>();
+        expectedFEAttrs.put("osgi.identity", "fram.ext");
+        expectedFEAttrs.put("type", "osgi.fragment");
+        expectedFEAttrs.put("version", Version.parseVersion("1.2.3.test"));
+        Capability expectedFICap = new TestCapability("osgi.identity",
+                expectedFEAttrs, Collections.<String, String>emptyMap());
+        assertCapsEquals(expectedFICap, feCaps.get(0));
+    }
+
     private File createBundle(String manifest) throws IOException
     {
         File f = File.createTempFile("felix-bundle", ".jar", tempDir);
