diff --git a/framework/pom.xml b/framework/pom.xml
index 9b5b711..2e4cdc7 100644
--- a/framework/pom.xml
+++ b/framework/pom.xml
@@ -80,36 +80,16 @@
                   <exclude>src/main/appended-resources/**</exclude>
                   <exclude>src/**/packageinfo</exclude>
                   <exclude>src/main/resources/META-INF/services/org.osgi.framework.launch.FrameworkFactory</exclude>
+                  <exclude>src/main/resources/org/apache/felix/framework/Felix.properties</exclude>
               </excludes>
             </configuration>
       </plugin>
     </plugins>
     <resources>
-      <!-- Add back in the default resources, since we are overriding resources. -->
       <resource>
         <directory>src/main/resources</directory>
         <filtering>true</filtering>
       </resource>
-      <!-- Copy Felix.java with property substitution enabled to get version. -->
-      <resource>
-        <directory>src/main/java</directory>
-        <includes>
-            <include>org/apache/felix/framework/Felix.java</include>
-        </includes>
-        <filtering>true</filtering>
-        <targetPath>../filtered-sources/java</targetPath>
-      </resource>
-      <!-- Copy other source files with no property substitution. -->
-      <resource>
-        <directory>src/main/java</directory>
-        <excludes>
-            <exclude>org/apache/felix/framework/Felix.java</exclude>
-        </excludes>
-        <filtering>false</filtering>
-        <targetPath>../filtered-sources/java</targetPath>
-      </resource>
     </resources>
-    <!-- Set the source directory to be the filtered source files. -->
-    <sourceDirectory>target/filtered-sources/java</sourceDirectory>
   </build>
 </project>
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 78e46ef..f1e71f7 100644
--- a/framework/src/main/java/org/apache/felix/framework/Felix.java
+++ b/framework/src/main/java/org/apache/felix/framework/Felix.java
@@ -73,9 +73,6 @@
 
 public class Felix extends BundleImpl implements Framework
 {
-    // This value is substituted by maven when building the framework.
-    private static final String m_frameworkVersion = "${pom.version}";
-
     // The secure action used to do privileged calls
     static final SecureAction m_secureAction = new SecureAction();
 
@@ -4307,9 +4304,27 @@
     **/
     private static String getFrameworkVersion()
     {
+        // The framework version property.
+        Properties props = new Properties();
+        InputStream in = Felix.class.getResourceAsStream("Felix.properties");
+        if (in != null)
+        {
+            try
+            {
+                props.load(in);
+            }
+            catch (IOException ex)
+            {
+                ex.printStackTrace();
+            }
+        }
+
         // Maven uses a '-' to separate the version qualifier,
         // while OSGi uses a '.', so we need to convert to a '.'
-        StringBuffer sb = new StringBuffer(m_frameworkVersion);
+        StringBuffer sb =
+            new StringBuffer(
+                props.getProperty(
+                    FelixConstants.FELIX_VERSION_PROPERTY, "0.0.0"));
         if (sb.toString().indexOf("-") >= 0)
         {
             sb.setCharAt(sb.toString().indexOf("-"), '.');
diff --git a/framework/src/main/resources/org/apache/felix/framework/Felix.properties b/framework/src/main/resources/org/apache/felix/framework/Felix.properties
new file mode 100644
index 0000000..768c415
--- /dev/null
+++ b/framework/src/main/resources/org/apache/felix/framework/Felix.properties
@@ -0,0 +1 @@
+felix.version=${pom.version}
