diff --git a/bnd-ipojo-plugin/doc/changelog.txt b/bnd-ipojo-plugin/doc/changelog.txt
index b969309..8df5596 100644
--- a/bnd-ipojo-plugin/doc/changelog.txt
+++ b/bnd-ipojo-plugin/doc/changelog.txt
@@ -1,3 +1,15 @@
+Changes from the 1.8.4 to 1.8.6
+-------------------------------
+
+** Bug
+    * [FELIX-3461] - Re-manipulation with annotated component produces corrupted MANIFEST
+    * [FELIX-3466] - Pojoization.directoryManipulation() does not take MANIFEST file location into account.
+    * [FELIX-3508] - IPojo Manipulator left out 'array of enums' in generated metadata
+    * [FELIX-3539] - iPOJO Manipulator failed on classes containing expanded frames
+    * [FELIX-3573] - IPojo bytecode manipulation generates a duplicate local variable
+    * [FELIX-3574] - IPojo bytecode manipulation looses method argument names
+    * [FELIX-3621] - Two dimensional array as argument to a method in a component
+
 Changes from the 1.8.2 to 1.8.4
 -------------------------------
 
diff --git a/bnd-ipojo-plugin/pom.xml b/bnd-ipojo-plugin/pom.xml
index a116981..9e13131 100644
--- a/bnd-ipojo-plugin/pom.xml
+++ b/bnd-ipojo-plugin/pom.xml
@@ -27,7 +27,7 @@
     </parent>
 
     <artifactId>bnd-ipojo-plugin</artifactId>
-    <version>1.9.0-SNAPSHOT</version>
+    <version>1.8.6</version>
     <name>Apache Felix iPOJO Bnd Plugin</name>
 
     <dependencies>
@@ -40,7 +40,7 @@
         <dependency>
             <groupId>org.apache.felix</groupId>
             <artifactId>org.apache.felix.ipojo.manipulator</artifactId>
-            <version>1.9.0-SNAPSHOT</version>
+            <version>1.8.6</version>
         </dependency>
         <dependency>
             <groupId>org.apache.felix</groupId>
@@ -103,4 +103,10 @@
             </build>
         </profile>
     </profiles>
+
+  <scm>
+    <connection>scm:svn:https://svn.apache.org/repos/asf/felix/releases/org.apache.felix.ipojo.manipulator-project-1.8.6</connection>
+    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/felix/releases/org.apache.felix.ipojo.manipulator-project-1.8.6</developerConnection>
+    <url>scm:svn:https://svn.apache.org/repos/asf/felix/releases/org.apache.felix.ipojo.manipulator-project-1.8.6</url>
+  </scm>
 </project>
\ No newline at end of file
diff --git a/doc/changelog.txt b/doc/changelog.txt
index 182fef1..182ae57 100644
--- a/doc/changelog.txt
+++ b/doc/changelog.txt
@@ -1,3 +1,16 @@
+Changes from the 1.8.4 to 1.8.6
+-------------------------------
+
+** Bug
+    * [FELIX-3461] - Re-manipulation with annotated component produces corrupted MANIFEST
+    * [FELIX-3466] - Pojoization.directoryManipulation() does not take MANIFEST file location into account.
+    * [FELIX-3508] - IPojo Manipulator left out 'array of enums' in generated metadata
+    * [FELIX-3539] - iPOJO Manipulator failed on classes containing expanded frames
+    * [FELIX-3573] - IPojo bytecode manipulation generates a duplicate local variable
+    * [FELIX-3574] - IPojo bytecode manipulation looses method argument names
+    * [FELIX-3621] - Two dimensional array as argument to a method in a component
+
+
 Changes from the 1.8.2 to 1.8.4
 -------------------------------
 
diff --git a/ipojo-ant-task/doc/changelog.txt b/ipojo-ant-task/doc/changelog.txt
index fe5bc76..6698d38 100644
--- a/ipojo-ant-task/doc/changelog.txt
+++ b/ipojo-ant-task/doc/changelog.txt
@@ -1,3 +1,15 @@
+Changes from the 1.8.4 to 1.8.6
+-------------------------------
+
+** Bug
+    * [FELIX-3461] - Re-manipulation with annotated component produces corrupted MANIFEST
+    * [FELIX-3466] - Pojoization.directoryManipulation() does not take MANIFEST file location into account.
+    * [FELIX-3508] - IPojo Manipulator left out 'array of enums' in generated metadata
+    * [FELIX-3539] - iPOJO Manipulator failed on classes containing expanded frames
+    * [FELIX-3573] - IPojo bytecode manipulation generates a duplicate local variable
+    * [FELIX-3574] - IPojo bytecode manipulation looses method argument names
+    * [FELIX-3621] - Two dimensional array as argument to a method in a component
+
 Changes from the 1.8.2 to 1.8.4
 -------------------------------
 
diff --git a/ipojo-ant-task/pom.xml b/ipojo-ant-task/pom.xml
index 77dc9c2..7decf59 100644
--- a/ipojo-ant-task/pom.xml
+++ b/ipojo-ant-task/pom.xml
@@ -26,7 +26,7 @@
     <modelVersion>4.0.0</modelVersion>
     <artifactId>org.apache.felix.ipojo.ant</artifactId>
     <groupId>org.apache.felix</groupId>
-    <version>1.9.0-SNAPSHOT</version>
+    <version>1.8.6</version>
     <packaging>bundle</packaging>
     <name>Apache Felix iPOJO Ant Task</name>
 
@@ -46,7 +46,7 @@
         <dependency>
             <groupId>org.apache.felix</groupId>
             <artifactId>org.apache.felix.ipojo.manipulator</artifactId>
-            <version>1.9.0-SNAPSHOT</version>
+            <version>1.8.6</version>
         </dependency>
         <dependency>
             <groupId>xerces</groupId>
@@ -169,4 +169,10 @@
             </build>
         </profile>
     </profiles>
+
+  <scm>
+    <connection>scm:svn:https://svn.apache.org/repos/asf/felix/releases/org.apache.felix.ipojo.manipulator-project-1.8.6</connection>
+    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/felix/releases/org.apache.felix.ipojo.manipulator-project-1.8.6</developerConnection>
+    <url>scm:svn:https://svn.apache.org/repos/asf/felix/releases/org.apache.felix.ipojo.manipulator-project-1.8.6</url>
+  </scm>
 </project>
diff --git a/manipulator/doc/changelog.txt b/manipulator/doc/changelog.txt
index 67019a5..4b763cc 100644
--- a/manipulator/doc/changelog.txt
+++ b/manipulator/doc/changelog.txt
@@ -1,4 +1,16 @@
-Changes from the 1.8.2 to 1.8.4
+Changes from the 1.8.4 to 1.8.6
+-------------------------------
+
+** Bug
+    * [FELIX-3461] - Re-manipulation with annotated component produces corrupted MANIFEST
+    * [FELIX-3466] - Pojoization.directoryManipulation() does not take MANIFEST file location into account.
+    * [FELIX-3508] - IPojo Manipulator left out 'array of enums' in generated metadata
+    * [FELIX-3539] - iPOJO Manipulator failed on classes containing expanded frames
+    * [FELIX-3573] - IPojo bytecode manipulation generates a duplicate local variable
+    * [FELIX-3574] - IPojo bytecode manipulation looses method argument names
+    * [FELIX-3621] - Two dimensional array as argument to a method in a component
+
+Changes from the 1.8.2 to 1.8.4
 -------------------------------
 
 ** Bug
diff --git a/manipulator/pom.xml b/manipulator/pom.xml
index 35a5636..ebcdf41 100644
--- a/manipulator/pom.xml
+++ b/manipulator/pom.xml
@@ -26,7 +26,7 @@
     <modelVersion>4.0.0</modelVersion>
     <packaging>bundle</packaging>
     <artifactId>org.apache.felix.ipojo.manipulator</artifactId>
-    <version>1.9.0-SNAPSHOT</version>
+    <version>1.8.6</version>
     <name>Apache Felix iPOJO Manipulator</name>
 
     <description>
@@ -172,4 +172,10 @@
             </build>
         </profile>
     </profiles>
+
+  <scm>
+    <connection>scm:svn:https://svn.apache.org/repos/asf/felix/releases/org.apache.felix.ipojo.manipulator-project-1.8.6</connection>
+    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/felix/releases/org.apache.felix.ipojo.manipulator-project-1.8.6</developerConnection>
+    <url>scm:svn:https://svn.apache.org/repos/asf/felix/releases/org.apache.felix.ipojo.manipulator-project-1.8.6</url>
+  </scm>
 </project>
diff --git a/manipulator/src/test/java/org/apache/felix/ipojo/manipulation/ManipulatedClassLoader.java b/manipulator/src/test/java/org/apache/felix/ipojo/manipulation/ManipulatedClassLoader.java
index f0f5c15..12afa5f 100644
--- a/manipulator/src/test/java/org/apache/felix/ipojo/manipulation/ManipulatedClassLoader.java
+++ b/manipulator/src/test/java/org/apache/felix/ipojo/manipulation/ManipulatedClassLoader.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, 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.
+ */
 package org.apache.felix.ipojo.manipulation;
 
 /**
diff --git a/manipulator/src/test/java/test/DoubleArray.java b/manipulator/src/test/java/test/DoubleArray.java
index 811ff82..1991e14 100644
--- a/manipulator/src/test/java/test/DoubleArray.java
+++ b/manipulator/src/test/java/test/DoubleArray.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, 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.
+ */
 package test;
 
 /**
diff --git a/manipulator/src/test/java/test/NonSunClass.java b/manipulator/src/test/java/test/NonSunClass.java
index 1d84182..8387236 100644
--- a/manipulator/src/test/java/test/NonSunClass.java
+++ b/manipulator/src/test/java/test/NonSunClass.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, 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.
+ */
 package test;
 
 /**
diff --git a/manipulator/src/test/java/test/PlentyOfAnnotations.java b/manipulator/src/test/java/test/PlentyOfAnnotations.java
index 3697920..88bcd56 100644
--- a/manipulator/src/test/java/test/PlentyOfAnnotations.java
+++ b/manipulator/src/test/java/test/PlentyOfAnnotations.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, 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.
+ */
 package test;
 
 import org.apache.felix.ipojo.annotations.*;
diff --git a/maven-ipojo-plugin/doc/changelog.txt b/maven-ipojo-plugin/doc/changelog.txt
index 7acc814..0fe80c1 100644
--- a/maven-ipojo-plugin/doc/changelog.txt
+++ b/maven-ipojo-plugin/doc/changelog.txt
@@ -1,3 +1,15 @@
+Changes from the 1.8.4 to 1.8.6
+-------------------------------
+
+** Bug
+    * [FELIX-3461] - Re-manipulation with annotated component produces corrupted MANIFEST
+    * [FELIX-3466] - Pojoization.directoryManipulation() does not take MANIFEST file location into account.
+    * [FELIX-3508] - IPojo Manipulator left out 'array of enums' in generated metadata
+    * [FELIX-3539] - iPOJO Manipulator failed on classes containing expanded frames
+    * [FELIX-3573] - IPojo bytecode manipulation generates a duplicate local variable
+    * [FELIX-3574] - IPojo bytecode manipulation looses method argument names
+    * [FELIX-3621] - Two dimensional array as argument to a method in a component
+
 Changes from the 1.8.2 to 1.8.4
 -------------------------------
 
diff --git a/maven-ipojo-plugin/pom.xml b/maven-ipojo-plugin/pom.xml
index 4d19ddb..f160b59 100644
--- a/maven-ipojo-plugin/pom.xml
+++ b/maven-ipojo-plugin/pom.xml
@@ -26,7 +26,7 @@
     <modelVersion>4.0.0</modelVersion>
     <artifactId>maven-ipojo-plugin</artifactId>
     <groupId>org.apache.felix</groupId>
-    <version>1.9.0-SNAPSHOT</version>
+    <version>1.8.6</version>
     <name>Apache Felix iPOJO Maven Plugin</name>
     <packaging>maven-plugin</packaging>
 
@@ -77,7 +77,7 @@
         <dependency>
             <groupId>org.apache.felix</groupId>
             <artifactId>org.apache.felix.ipojo.manipulator</artifactId>
-            <version>1.9.0-SNAPSHOT</version>
+            <version>1.8.6</version>
         </dependency>
     </dependencies>
     <build>
@@ -155,4 +155,10 @@
             </build>
         </profile>
     </profiles>
+
+  <scm>
+    <connection>scm:svn:https://svn.apache.org/repos/asf/felix/releases/org.apache.felix.ipojo.manipulator-project-1.8.6</connection>
+    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/felix/releases/org.apache.felix.ipojo.manipulator-project-1.8.6</developerConnection>
+    <url>scm:svn:https://svn.apache.org/repos/asf/felix/releases/org.apache.felix.ipojo.manipulator-project-1.8.6</url>
+  </scm>
 </project>
diff --git a/pom.xml b/pom.xml
index 11072b9..b24ed53 100644
--- a/pom.xml
+++ b/pom.xml
@@ -25,7 +25,7 @@
     </parent>
     <modelVersion>4.0.0</modelVersion>
     <artifactId>org.apache.felix.ipojo.manipulator-project</artifactId>
-    <version>1.9.0-SNAPSHOT</version>
+    <version>1.8.6</version>
     <name>Apache Felix iPOJO Manipulator Project</name>
     <packaging>pom</packaging>
 
@@ -119,4 +119,10 @@
             </build>
         </profile>
     </profiles>
+
+  <scm>
+    <connection>scm:svn:https://svn.apache.org/repos/asf/felix/releases/org.apache.felix.ipojo.manipulator-project-1.8.6</connection>
+    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/felix/releases/org.apache.felix.ipojo.manipulator-project-1.8.6</developerConnection>
+    <url>scm:svn:https://svn.apache.org/repos/asf/felix/releases/org.apache.felix.ipojo.manipulator-project-1.8.6</url>
+  </scm>
 </project>
