diff --git a/framework/src/main/java/org/apache/felix/framework/cache/JarContent.java b/framework/src/main/java/org/apache/felix/framework/cache/JarContent.java
index 5328ad2..fc9ff53 100644
--- a/framework/src/main/java/org/apache/felix/framework/cache/JarContent.java
+++ b/framework/src/main/java/org/apache/felix/framework/cache/JarContent.java
@@ -33,7 +33,6 @@
 public class JarContent implements IContent
 {
     private static final int BUFSIZE = 4096;
-    private static final transient String LEGACY_EMBEDDED_DIRECTORY = "embedded";
     private static final transient String EMBEDDED_DIRECTORY = "-embedded";
     private static final transient String LIBRARY_DIRECTORY = "lib";
 
@@ -42,8 +41,6 @@
     private final File m_rootDir;
     private final File m_file;
     private JarFileX m_jarFile = null;
-    // TODO: CACHE - It would be nice to eventually remove this legacy flag.
-    private final boolean m_legacy;
 
     public JarContent(Logger logger, Object revisionLock, File rootDir, File file)
     {
@@ -51,17 +48,6 @@
         m_revisionLock = revisionLock;
         m_rootDir = rootDir;
         m_file = file;
-        m_legacy = false;
-    }
-
-    // This is only used by JarRevision.
-    public JarContent(Logger logger, Object revisionLock, File rootDir, File file, boolean legacy)
-    {
-        m_logger = logger;
-        m_revisionLock = revisionLock;
-        m_rootDir = rootDir;
-        m_file = file;
-        m_legacy = legacy;
     }
 
     protected void finalize()
@@ -291,7 +277,7 @@
         // just return it immediately.
         if (entryName.equals(FelixConstants.CLASS_PATH_DOT))
         {
-            return new JarContent(m_logger, m_revisionLock, m_rootDir, m_file, m_legacy);
+            return new JarContent(m_logger, m_revisionLock, m_rootDir, m_file);
         }
 
         // Remove any leading slash.
@@ -302,15 +288,7 @@
         // embedded JAR files, the embedded directory is per embedded JAR file.
         // For backwards compatibility purposes, don't use the file cache name
         // for the root bundle JAR file.
-        File embedDir;
-        if (m_legacy)
-        {
-            embedDir = new File(m_rootDir, LEGACY_EMBEDDED_DIRECTORY);
-        }
-        else
-        {
-            embedDir = new File(m_rootDir, m_file.getName() + EMBEDDED_DIRECTORY);
-        }
+        File embedDir = new File(m_rootDir, m_file.getName() + EMBEDDED_DIRECTORY);
 
         // Find the entry in the JAR file and create the
         // appropriate content type for it.
@@ -490,15 +468,7 @@
         // embedded JAR files, the embedded directory is per embedded JAR file.
         // For backwards compatibility purposes, don't use the file cache name
         // for the root bundle JAR file.
-        File embedDir;
-        if (m_legacy)
-        {
-            embedDir = new File(m_rootDir, LEGACY_EMBEDDED_DIRECTORY);
-        }
-        else
-        {
-            embedDir = new File(m_rootDir, m_file.getName() + EMBEDDED_DIRECTORY);
-        }
+        File embedDir = new File(m_rootDir, m_file.getName() + EMBEDDED_DIRECTORY);
         File jarFile = new File(embedDir, jarPath);
 
         if (!BundleCache.getSecureAction().fileExists(jarFile))
diff --git a/framework/src/main/java/org/apache/felix/framework/cache/JarRevision.java b/framework/src/main/java/org/apache/felix/framework/cache/JarRevision.java
index cf9cc7e..9e47171 100644
--- a/framework/src/main/java/org/apache/felix/framework/cache/JarRevision.java
+++ b/framework/src/main/java/org/apache/felix/framework/cache/JarRevision.java
@@ -105,7 +105,7 @@
 
     public synchronized IContent getContent() throws Exception
     {
-        return new JarContent(getLogger(), this, getRevisionRootDir(), m_bundleFile, true);
+        return new JarContent(getLogger(), this, getRevisionRootDir(), m_bundleFile);
     }
 
     public void dispose() throws Exception
