diff --git a/ipojo/runtime/annotations/pom.xml b/ipojo/runtime/annotations/pom.xml
index 29a9657..cffd918 100644
--- a/ipojo/runtime/annotations/pom.xml
+++ b/ipojo/runtime/annotations/pom.xml
@@ -16,7 +16,8 @@
   specific language governing permissions and limitations
   under the License.
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
         <groupId>org.apache.felix</groupId>
         <artifactId>felix-parent</artifactId>
@@ -25,7 +26,7 @@
     </parent>
     <modelVersion>4.0.0</modelVersion>
     <artifactId>org.apache.felix.ipojo.annotations</artifactId>
-    <version>1.10.1-SNAPSHOT</version>
+    <version>1.9.0-SNAPSHOT</version>
     <packaging>bundle</packaging>
     <name>Apache Felix iPOJO Annotations</name>
 
diff --git a/ipojo/runtime/api-it/pom.xml b/ipojo/runtime/api-it/pom.xml
index fcdb500..8797bcb 100644
--- a/ipojo/runtime/api-it/pom.xml
+++ b/ipojo/runtime/api-it/pom.xml
@@ -16,7 +16,9 @@
   specific language governing permissions and limitations
   under the License.
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xmlns="http://maven.apache.org/POM/4.0.0"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
         <groupId>org.apache.felix</groupId>
         <artifactId>felix-parent</artifactId>
@@ -25,7 +27,7 @@
     </parent>
     <modelVersion>4.0.0</modelVersion>
     <artifactId>org.apache.felix.ipojo.runtime.api-it</artifactId>
-    <version>1.10.1-SNAPSHOT</version>
+    <version>1.9.0-SNAPSHOT</version>
     <name>Apache Felix iPOJO Runtime Project ~ API Integration Tests</name>
     <packaging>pom</packaging>
 
@@ -160,19 +162,19 @@
         <dependency>
             <groupId>org.apache.felix</groupId>
             <artifactId>org.apache.felix.ipojo</artifactId>
-            <version>1.10.1-SNAPSHOT</version>
+            <version>1.9.0-SNAPSHOT</version>
         </dependency>
 
         <dependency>
             <groupId>org.apache.felix</groupId>
             <artifactId>org.apache.felix.ipojo.api</artifactId>
-            <version>1.10.1-SNAPSHOT</version>
+            <version>1.9.0-SNAPSHOT</version>
         </dependency>
         
         <dependency>
             <groupId>org.apache.felix</groupId>
             <artifactId>org.apache.felix.ipojo.composite</artifactId>
-            <version>1.10.1-SNAPSHOT</version>
+            <version>1.9.0-SNAPSHOT</version>
         </dependency>
 
         <dependency>
@@ -210,7 +212,7 @@
         <dependency>
             <groupId>org.ow2.chameleon.testing</groupId>
             <artifactId>osgi-helpers</artifactId>
-            <version>0.6.1</version>
+            <version>0.6.1-SNAPSHOT</version>
             <scope>test</scope>
         </dependency>
 
diff --git a/ipojo/runtime/api/pom.xml b/ipojo/runtime/api/pom.xml
index 629142f..8856261 100644
--- a/ipojo/runtime/api/pom.xml
+++ b/ipojo/runtime/api/pom.xml
@@ -16,7 +16,8 @@
   specific language governing permissions and limitations
   under the License.
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <parent>
         <groupId>org.apache.felix</groupId>
         <artifactId>felix-parent</artifactId>
@@ -26,7 +27,7 @@
     <modelVersion>4.0.0</modelVersion>
     <packaging>bundle</packaging>
     <artifactId>org.apache.felix.ipojo.api</artifactId>
-    <version>1.10.1-SNAPSHOT</version>
+    <version>1.9.0-SNAPSHOT</version>
     <name>Apache Felix iPOJO API</name>
 
     <description>
@@ -104,12 +105,12 @@
         <dependency>
             <groupId>org.apache.felix</groupId>
             <artifactId>org.apache.felix.ipojo</artifactId>
-            <version>1.10.1-SNAPSHOT</version>
+            <version>1.9.0-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>org.apache.felix</groupId>
             <artifactId>org.apache.felix.ipojo.composite</artifactId>
-            <version>1.10.1-SNAPSHOT</version>
+            <version>1.9.0-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>org.apache.felix</groupId>
diff --git a/ipojo/runtime/composite-it/pom.xml b/ipojo/runtime/composite-it/pom.xml
index 44a3d5e..098451c 100644
--- a/ipojo/runtime/composite-it/pom.xml
+++ b/ipojo/runtime/composite-it/pom.xml
@@ -16,7 +16,9 @@
   specific language governing permissions and limitations
   under the License.
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xmlns="http://maven.apache.org/POM/4.0.0"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
         <groupId>org.apache.felix</groupId>
         <artifactId>felix-parent</artifactId>
@@ -25,7 +27,7 @@
     </parent>
     <modelVersion>4.0.0</modelVersion>
     <artifactId>org.apache.felix.ipojo.runtime.composite-it</artifactId>
-    <version>1.10.1-SNAPSHOT</version>
+    <version>1.9.0-SNAPSHOT</version>
     <name>Apache Felix iPOJO Runtime Project ~ Composite Integration Tests</name>
     <packaging>pom</packaging>
 
@@ -158,7 +160,7 @@
         <dependency>
             <groupId>org.apache.felix</groupId>
             <artifactId>org.apache.felix.ipojo</artifactId>
-            <version>1.10.1-SNAPSHOT</version>
+            <version>1.9.0-SNAPSHOT</version>
             <exclusions>
                 <exclusion>
                     <groupId>org.osgi</groupId>
@@ -170,7 +172,7 @@
         <dependency>
             <groupId>org.apache.felix</groupId>
             <artifactId>org.apache.felix.ipojo.composite</artifactId>
-            <version>1.10.1-SNAPSHOT</version>
+            <version>1.9.0-SNAPSHOT</version>
             <exclusions>
                 <exclusion>
                     <groupId>org.osgi</groupId>
@@ -201,7 +203,7 @@
         <dependency>
             <groupId>org.ow2.chameleon.testing</groupId>
             <artifactId>osgi-helpers</artifactId>
-            <version>0.6.1</version>
+            <version>0.6.1-SNAPSHOT</version>
             <scope>test</scope>
             <exclusions>
                 <exclusion>
diff --git a/ipojo/runtime/composite/pom.xml b/ipojo/runtime/composite/pom.xml
index 5c0de78..272b424 100644
--- a/ipojo/runtime/composite/pom.xml
+++ b/ipojo/runtime/composite/pom.xml
@@ -27,7 +27,7 @@
     <packaging>bundle</packaging>
     <name>Apache Felix iPOJO Composite</name>
     <artifactId>org.apache.felix.ipojo.composite</artifactId>
-    <version>1.10.1-SNAPSHOT</version>
+    <version>1.9.0-SNAPSHOT</version>
 
     <properties>
         <ipojo.package.version>1.8.4</ipojo.package.version>
@@ -52,7 +52,7 @@
         <dependency>
             <groupId>org.apache.felix</groupId>
             <artifactId>org.apache.felix.ipojo</artifactId>
-            <version>1.10.1-SNAPSHOT</version>
+            <version>1.9.0-SNAPSHOT</version>
         </dependency>
     </dependencies>
     <build>
@@ -67,7 +67,7 @@
                         <Bundle-Name>Apache Felix iPOJO Composite</Bundle-Name>
                         <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
                         <Bundle-Vendor>The Apache Software Foundation</Bundle-Vendor>
-                        <Bundle-Description>iPOJO Composititon Framework
+                        <Bundle-Description>iPOJO Composition Layer
                         </Bundle-Description>
                         <Bundle-DocURL>
                             http://felix.apache.org/site/ipojo-composition-tutorial.html
@@ -81,6 +81,8 @@
                             org.apache.felix.ipojo.util,
                             org.osgi.framework;version=1.3,
                             !org.objectweb.asm.tree,
+                            !org.apache.felix.ipojo.xml.parser,
+                            !org.apache.felix.ipojo.annotations,
                             *
                         </Import-Package>
                         <Private-Package>
@@ -92,7 +94,8 @@
                             org.objectweb.asm.commons,
                             org.objectweb.asm.signature,
                             org.objectweb.asm,
-                            org.apache.felix.ipojo.manipulation*
+                            org.apache.felix.ipojo.manipulation*,
+                            org.apache.felix.ipojo.manipulator*
                         </Private-Package>
                         <Export-Package>
                             org.apache.felix.ipojo.composite; version="${ipojo.package.version}"
diff --git a/ipojo/runtime/core-it/pom.xml b/ipojo/runtime/core-it/pom.xml
index 23158eb..41ef1b7 100644
--- a/ipojo/runtime/core-it/pom.xml
+++ b/ipojo/runtime/core-it/pom.xml
@@ -16,7 +16,9 @@
   specific language governing permissions and limitations
   under the License.
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xmlns="http://maven.apache.org/POM/4.0.0"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
         <groupId>org.apache.felix</groupId>
         <artifactId>felix-parent</artifactId>
@@ -25,7 +27,7 @@
     </parent>
     <modelVersion>4.0.0</modelVersion>
     <artifactId>org.apache.felix.ipojo.runtime.core-it</artifactId>
-    <version>1.10.1-SNAPSHOT</version>
+    <version>1.9.0-SNAPSHOT</version>
     <name>Apache Felix iPOJO Runtime Project ~ Core Integration Tests</name>
     <packaging>pom</packaging>
 
@@ -177,7 +179,7 @@
         <dependency>
             <groupId>org.apache.felix</groupId>
             <artifactId>org.apache.felix.ipojo</artifactId>
-            <version>1.10.1-SNAPSHOT</version>
+            <version>1.9.0-SNAPSHOT</version>
             <exclusions>
                 <exclusion>
                     <groupId>org.osgi</groupId>
@@ -189,7 +191,7 @@
         <dependency>
             <groupId>org.apache.felix</groupId>
             <artifactId>org.apache.felix.ipojo.annotations</artifactId>
-            <version>1.10.1-SNAPSHOT</version>
+            <version>1.9.0-SNAPSHOT</version>
         </dependency>
 
         <dependency>
@@ -208,7 +210,7 @@
         <dependency>
             <groupId>org.ow2.chameleon.testing</groupId>
             <artifactId>osgi-helpers</artifactId>
-            <version>0.6.1</version>
+            <version>0.6.1-SNAPSHOT</version>
             <scope>test</scope>
             <exclusions>
                 <exclusion>
diff --git a/ipojo/runtime/core/pom.xml b/ipojo/runtime/core/pom.xml
index 3e8501e..0e6cd50 100644
--- a/ipojo/runtime/core/pom.xml
+++ b/ipojo/runtime/core/pom.xml
@@ -27,7 +27,7 @@
     <packaging>bundle</packaging>
     <name>Apache Felix iPOJO</name>
     <artifactId>org.apache.felix.ipojo</artifactId>
-    <version>1.10.1-SNAPSHOT</version>
+    <version>1.9.0-SNAPSHOT</version>
 
     <properties>
         <!--
diff --git a/ipojo/runtime/pom.xml b/ipojo/runtime/pom.xml
index e547fea..cca2ea5 100644
--- a/ipojo/runtime/pom.xml
+++ b/ipojo/runtime/pom.xml
@@ -25,7 +25,7 @@
     </parent>
     <modelVersion>4.0.0</modelVersion>
     <artifactId>org.apache.felix.ipojo.runtime-project</artifactId>
-    <version>1.10.1-SNAPSHOT</version>
+    <version>1.9.0-SNAPSHOT</version>
     <name>Apache Felix iPOJO Runtime Project</name>
     <packaging>pom</packaging>
 
