diff --git a/dependencymanager/annotation/DEPENDENCIES b/dependencymanager/annotation/DEPENDENCIES
new file mode 100644
index 0000000..d75b182
--- /dev/null
+++ b/dependencymanager/annotation/DEPENDENCIES
@@ -0,0 +1,29 @@
+Apache Felix Dependency Manager Annotation
+Copyright 2011 The Apache Software Foundation
+
+This software was developed at the Apache Software Foundation
+(http://www.apache.org) and may have dependencies on other
+Apache software licensed under Apache License 2.0.
+
+I. Included Third-Party Software
+
+II. Used Third-Party Software
+
+This product uses software developed at
+The OSGi Alliance (http://www.osgi.org/).
+Copyright (c) OSGi Alliance (2000, 2009).
+Licensed under the Apache License 2.0.
+
+This product uses software developed by Peter Kriens
+(http://www.aqute.biz/Code/Bnd)
+Copyright 2006-2011 aQute, All rights reserved
+Licensed under the Apache License 2.0.
+
+This product uses software from http://www.json.org.
+Copyright (c) 2002 JSON.org
+Licensed under the JSON License
+
+III. Overall License Summary
+
+- Apache License 2.0
+- JSON License
diff --git a/dependencymanager/annotation/LICENSE.json b/dependencymanager/annotation/LICENSE.json
deleted file mode 100644
index 87d1411..0000000
--- a/dependencymanager/annotation/LICENSE.json
+++ /dev/null
@@ -1,21 +0,0 @@
-Copyright (c) 2002 JSON.org
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-The Software shall be used for Good, not Evil.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/dependencymanager/annotation/NOTICE b/dependencymanager/annotation/NOTICE
index cfc3633..13f85b1 100644
--- a/dependencymanager/annotation/NOTICE
+++ b/dependencymanager/annotation/NOTICE
@@ -1,26 +1,8 @@
-Apache Felix Dependency Manager
-Copyright 2009 The Apache Software Foundation
-
-
-I. Included Software
+Apache Felix Dependency Manager Annotation
+Copyright 2011 The Apache Software Foundation
 
 This product includes software developed at
 The Apache Software Foundation (http://www.apache.org/).
 Licensed under the Apache License 2.0.
 
-This product includes software developed at
-The OSGi Alliance (http://www.osgi.org/).
-Copyright (c) OSGi Alliance (2000, 2007).
-Licensed under the Apache License 2.0.
 
-
-II. Used Software
-
-This product uses software developed at
-The OSGi Alliance (http://www.osgi.org/).
-Copyright (c) OSGi Alliance (2000, 2007).
-Licensed under the Apache License 2.0.
-
-
-III. License Summary
-- Apache License 2.0
diff --git a/dependencymanager/annotation/pom.xml b/dependencymanager/annotation/pom.xml
index 6fb3e7a..482061f 100644
--- a/dependencymanager/annotation/pom.xml
+++ b/dependencymanager/annotation/pom.xml
@@ -34,12 +34,10 @@
 			<groupId>org.osgi</groupId>
 			<artifactId>org.osgi.core</artifactId>
 		</dependency>
-
 		<dependency>
 			<groupId>biz.aQute</groupId>
 			<artifactId>bndlib</artifactId>
 		</dependency>
-
 		<dependency>
 			<groupId>org.apache.maven</groupId>
 			<artifactId>maven-plugin-api</artifactId>
@@ -55,7 +53,6 @@
 			<artifactId>maven-artifact</artifactId>
 			<scope>compile</scope>
 		</dependency>
-
 		<dependency>
 			<groupId>org.json</groupId>
 			<artifactId>json</artifactId>
@@ -63,6 +60,18 @@
 		</dependency>
 	</dependencies>
 	<build>
+		<resources>
+			<resource>
+				<directory>.</directory>
+				<targetPath>META-INF</targetPath>
+				<includes>
+					<include>LICENSE*</include>
+					<include>NOTICE*</include>
+					<include>DEPENDENCIES*</include>
+				</includes>
+			</resource>
+		</resources>
+
 		<plugins>
 			<plugin>
 				<groupId>org.apache.maven.plugins</groupId>
diff --git a/dependencymanager/compat/DEPENDENCIES b/dependencymanager/compat/DEPENDENCIES
new file mode 100644
index 0000000..df9f8c0
--- /dev/null
+++ b/dependencymanager/compat/DEPENDENCIES
@@ -0,0 +1,20 @@
+Apache Felix Dependency Manager Runtime
+Copyright 2011 The Apache Software Foundation
+
+This software was developed at the Apache Software Foundation
+(http://www.apache.org) and may have dependencies on other
+Apache software licensed under Apache License 2.0.
+
+I. Included Third-Party Software
+
+II. Used Third-Party Software
+
+This product uses software developed at
+The OSGi Alliance (http://www.osgi.org/).
+Copyright (c) OSGi Alliance (2000, 2009).
+Licensed under the Apache License 2.0.
+
+III. Overall License Summary
+
+- Apache License 2.0
+
diff --git a/dependencymanager/compat/NOTICE b/dependencymanager/compat/NOTICE
index cfc3633..0904e1f 100644
--- a/dependencymanager/compat/NOTICE
+++ b/dependencymanager/compat/NOTICE
@@ -1,26 +1,6 @@
-Apache Felix Dependency Manager
-Copyright 2009 The Apache Software Foundation
-
-
-I. Included Software
+Apache Felix Dependency Manager Compatibility
+Copyright 2011 The Apache Software Foundation
 
 This product includes software developed at
 The Apache Software Foundation (http://www.apache.org/).
 Licensed under the Apache License 2.0.
-
-This product includes software developed at
-The OSGi Alliance (http://www.osgi.org/).
-Copyright (c) OSGi Alliance (2000, 2007).
-Licensed under the Apache License 2.0.
-
-
-II. Used Software
-
-This product uses software developed at
-The OSGi Alliance (http://www.osgi.org/).
-Copyright (c) OSGi Alliance (2000, 2007).
-Licensed under the Apache License 2.0.
-
-
-III. License Summary
-- Apache License 2.0
diff --git a/dependencymanager/compat/pom.xml b/dependencymanager/compat/pom.xml
index 892ddbc..b7b7675 100644
--- a/dependencymanager/compat/pom.xml
+++ b/dependencymanager/compat/pom.xml
@@ -58,6 +58,7 @@
 						<Export-Package>org.apache.felix.dependencymanager"</Export-Package>
 						<Import-Package>!org.apache.felix.dependencymanager,org.apache.felix.dm;version="[3,4)",*</Import-Package>
 						<Private-Package>org.apache.felix.dependencymanager.impl</Private-Package>
+						<Include-Resource>META-INF/LICENSE=LICENSE,META-INF/NOTICE=NOTICE,META-INF/DEPENDENCIES=DEPENDENCIES</Include-Resource> 
 					</instructions>
 				</configuration>
 			</plugin>
diff --git a/dependencymanager/runtime/DEPENDENCIES b/dependencymanager/runtime/DEPENDENCIES
index 429316b..e8b5698 100644
--- a/dependencymanager/runtime/DEPENDENCIES
+++ b/dependencymanager/runtime/DEPENDENCIES
@@ -14,7 +14,8 @@
 II. Used Third-Party Software
 
 This product uses software developed at
-The Apache Software Foundation (http://www.apache.org/).
+The OSGi Alliance (http://www.osgi.org/).
+Copyright (c) OSGi Alliance (2000, 2009).
 Licensed under the Apache License 2.0.
 
 III. Overall License Summary
diff --git a/dependencymanager/runtime/LICENSE b/dependencymanager/runtime/LICENSE
index d5afa1b..d645695 100644
--- a/dependencymanager/runtime/LICENSE
+++ b/dependencymanager/runtime/LICENSE
@@ -200,34 +200,3 @@
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
-
-APACHE FELIX OSGI DEPENDENCY MANAGER RUNTIME SUBCOMPONENTS: 
-
-The Apache Felix OSGi Dependency Manager Runtime includes a number of subcomponents with
-separate copyright notices and license terms. Your use of the source
-code for the these subcomponents is subject to the terms and
-conditions of the following licenses. 
-
-For the For the JSON component:
-
-Copyright (c) 2002 JSON.org
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-The Software shall be used for Good, not Evil.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/dependencymanager/runtime/NOTICE b/dependencymanager/runtime/NOTICE
index 0298840..3175387 100644
--- a/dependencymanager/runtime/NOTICE
+++ b/dependencymanager/runtime/NOTICE
@@ -5,8 +5,6 @@
 The Apache Software Foundation (http://www.apache.org/).
 Licensed under the Apache License 2.0.
 
-This product includes software developed at
-The OSGi Alliance (http://www.osgi.org/).
-Copyright (c) OSGi Alliance (2000, 2009).
-Licensed under the Apache License 2.0.
-
+This product includes software from http://www.json.org.
+Copyright (c) 2002 JSON.org
+Licensed under the JSON License
