diff --git a/main/src/main/java/org/apache/felix/main/Main.java b/main/src/main/java/org/apache/felix/main/Main.java
index d428b83..a176d32 100644
--- a/main/src/main/java/org/apache/felix/main/Main.java
+++ b/main/src/main/java/org/apache/felix/main/Main.java
@@ -146,6 +146,9 @@
         // Read configuration properties.
         Properties configProps = Main.loadConfigProperties();
 
+        // Copy framework properties from the system properties.
+        Main.copySystemProperties(configProps);
+
         // See if the profile name property was specified.
         String profileName = configProps.getProperty(BundleCache.CACHE_PROFILE_PROP);
 
@@ -419,6 +422,21 @@
         return props;
     }
 
+    public static void copySystemProperties(Properties configProps)
+    {
+        for (Enumeration e = System.getProperties().propertyNames();
+             e.hasMoreElements(); )
+        {
+            String key = (String)e.nextElement();
+            if (key.startsWith("felix.") ||
+                key.equals("org.osgi.framework.system.packages") ||
+                key.equals("org.osgi.framework.bootdelegation"))
+            {
+                configProps.setProperty(key, System.getProperty(key));
+            }
+        }
+    }
+
     private static final String DELIM_START = "${";
     private static final String DELIM_STOP  = "}";
 
