diff --git a/org.apache.felix.framework/src/main/java/org/apache/felix/framework/Felix.java b/org.apache.felix.framework/src/main/java/org/apache/felix/framework/Felix.java
index de98707..9b0c80b 100644
--- a/org.apache.felix.framework/src/main/java/org/apache/felix/framework/Felix.java
+++ b/org.apache.felix.framework/src/main/java/org/apache/felix/framework/Felix.java
@@ -3326,42 +3326,30 @@
 
         
         m_configMutable.put(
-            FelixConstants.FELIX_VERSION_PROPERTY, getVersion() );
+            FelixConstants.FELIX_VERSION_PROPERTY, getFrameworkVersion());
     }
 
-
-    private static final String FELIX_VERSION_VALUE;
-    
-    static
-    {
-        FELIX_VERSION_VALUE = getVersion0();
-    }
-    
-    
-    private static String getVersion0()
+    /**
+     * Read the framework version from the property file.
+     * @return the framework version as a string.
+    **/
+    private static String getFrameworkVersion()
     {
         // The framework version property.
         Properties props = new Properties();
-        InputStream in = Felix.class.getResourceAsStream( "Felix.properties" );
+        InputStream in = Felix.class.getResourceAsStream("Felix.properties");
         try
         {
-            props.load( in );
+            props.load(in);
         }
-        catch ( IOException e )
+        catch (IOException ex)
         {
-            e.printStackTrace();
+            ex.printStackTrace();
         } 
         
-        return props.getProperty( FelixConstants.FELIX_VERSION_PROPERTY, "unknown" );
-    }
-
-    
-    public static String getVersion()
-    {
-        return FELIX_VERSION_VALUE;
+        return props.getProperty(FelixConstants.FELIX_VERSION_PROPERTY, "unknown");
     }
     
-
     private void processAutoProperties()
     {
         // The auto-install property specifies a space-delimited list of
diff --git a/org.apache.felix.framework/src/main/java/org/apache/felix/framework/SystemBundle.java b/org.apache.felix.framework/src/main/java/org/apache/felix/framework/SystemBundle.java
index 6f9b759..32d56aa 100644
--- a/org.apache.felix.framework/src/main/java/org/apache/felix/framework/SystemBundle.java
+++ b/org.apache.felix.framework/src/main/java/org/apache/felix/framework/SystemBundle.java
@@ -126,8 +126,10 @@
 
         // Initialize header map as a case insensitive map.
         Map map = new StringMap(false);
-        map.put(FelixConstants.BUNDLE_VERSION, Felix.getVersion() );
-        map.put(FelixConstants.BUNDLE_SYMBOLICNAME, FelixConstants.SYSTEM_BUNDLE_SYMBOLICNAME);
+        map.put(FelixConstants.BUNDLE_VERSION,
+            getFelix().getConfig().get(FelixConstants.FELIX_VERSION_PROPERTY));
+        map.put(FelixConstants.BUNDLE_SYMBOLICNAME,
+            FelixConstants.SYSTEM_BUNDLE_SYMBOLICNAME);
         map.put(FelixConstants.BUNDLE_NAME, "System Bundle");
         map.put(FelixConstants.BUNDLE_DESCRIPTION,
             "This bundle is system specific; it implements various system services.");
