diff --git a/ipojo/api/doc/changelog.txt b/ipojo/api/doc/changelog.txt
index 607b95c..9ec45b7 100644
--- a/ipojo/api/doc/changelog.txt
+++ b/ipojo/api/doc/changelog.txt
@@ -1,3 +1,13 @@
+Changes from the 1.4.0 to 1.6.0
+-------------------------------
+** Improvement
+    * [FELIX-1427] - Service injection with Smart Proxies
+    * [FELIX-1906] - Allow calling a method when service properties of an already injected service are modified
+    * [FELIX-2268] - Simplify setting of properties.
+
+** New Feature
+    * [FELIX-2132] - Provides a way to control service exposition from the implementation class
+    
 Version 1.4.0
 -------------
     
diff --git a/ipojo/api/src/main/java/org/apache/felix/ipojo/api/PrimitiveComponentType.java b/ipojo/api/src/main/java/org/apache/felix/ipojo/api/PrimitiveComponentType.java
index 0bd4a8f..297c213 100644
--- a/ipojo/api/src/main/java/org/apache/felix/ipojo/api/PrimitiveComponentType.java
+++ b/ipojo/api/src/main/java/org/apache/felix/ipojo/api/PrimitiveComponentType.java
@@ -531,15 +531,14 @@
      * @param obj the value (can be <code>null</code>)
      * @return the current component type
      */
-    public PrimitiveComponentType addProperty(String key, Object obj) { 
+    public PrimitiveComponentType addProperty(String key, Object obj) {
         String value = null;
         if (obj != null) {
             value = obj.toString();
         }
 
-        addProperty(new Property().setName(key)
-           .setValue(value)); 
-        return this; 
-     } 
+        addProperty(new Property().setName(key).setValue(value));
+        return this;
+    }
 
 }
diff --git a/ipojo/api/src/main/java/org/apache/felix/ipojo/api/Service.java b/ipojo/api/src/main/java/org/apache/felix/ipojo/api/Service.java
index 60bb2ee..43a71bb 100644
--- a/ipojo/api/src/main/java/org/apache/felix/ipojo/api/Service.java
+++ b/ipojo/api/src/main/java/org/apache/felix/ipojo/api/Service.java
@@ -187,7 +187,7 @@
      * @param obj the initial value (can be <code>null</code>)
      * @return the current service object.
      */
-    public Service addProperty(String key, Object obj) { 
+    public Service addProperty(String key, Object obj) {
         Class clazz = String.class;
         String value = null;
         if (obj != null) {
@@ -195,12 +195,11 @@
             value = obj.toString();
         }
 
-        addProperty(new ServiceProperty().setName(key) 
-           .setType(clazz.getName())
-           .setValue(value));
-        
-        return this; 
-     } 
+        addProperty(new ServiceProperty().setName(key).setType(clazz.getName())
+                .setValue(value));
+
+        return this;
+    }
 
     /**
      * Sets the provided service specification.
