diff --git a/ipojo/runtime/core-it/src/it/ipojo-core-handler-test/src/test/java/org/apache/felix/ipojo/runtime/core/Common.java b/ipojo/runtime/core-it/src/it/ipojo-core-handler-test/src/test/java/org/apache/felix/ipojo/runtime/core/Common.java
index df3b439..801760e 100644
--- a/ipojo/runtime/core-it/src/it/ipojo-core-handler-test/src/test/java/org/apache/felix/ipojo/runtime/core/Common.java
+++ b/ipojo/runtime/core-it/src/it/ipojo-core-handler-test/src/test/java/org/apache/felix/ipojo/runtime/core/Common.java
@@ -163,9 +163,6 @@
         return new DefaultCompositeOption(
                 mavenBundle("org.apache.felix", "org.apache.felix.ipojo").versionAsInProject(),
                 mavenBundle("org.ow2.chameleon.testing", "osgi-helpers").versionAsInProject(),
-                // harmcrest-all
-                //mavenBundle("de.twentyeleven.skysail", "org.hamcrest.hamcrest-all-osgi").versionAsInProject(),
-                // configuration admin
                 mavenBundle("org.apache.felix",  "org.apache.felix.configadmin").versionAsInProject()
         );
     }
diff --git a/ipojo/runtime/core-it/src/it/ipojo-core-handler-test/src/test/java/org/apache/felix/ipojo/runtime/core/DummyHandlerTest.java b/ipojo/runtime/core-it/src/it/ipojo-core-handler-test/src/test/java/org/apache/felix/ipojo/runtime/core/DummyHandlerTest.java
index b9ff42f..34393c6 100644
--- a/ipojo/runtime/core-it/src/it/ipojo-core-handler-test/src/test/java/org/apache/felix/ipojo/runtime/core/DummyHandlerTest.java
+++ b/ipojo/runtime/core-it/src/it/ipojo-core-handler-test/src/test/java/org/apache/felix/ipojo/runtime/core/DummyHandlerTest.java
@@ -28,7 +28,6 @@
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 import static org.ops4j.pax.exam.CoreOptions.bundle;
-import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
 import static org.ops4j.pax.exam.CoreOptions.streamBundle;
 import static org.ops4j.pax.tinybundles.core.TinyBundles.withBnd;
 
@@ -37,13 +36,11 @@
 public class DummyHandlerTest extends Common {
 
     private static final String DUMMY_TEST_FACTORY = "dummy.test";
-
     /*
      * Number of mock object by test.
      */
     private static final int NB_MOCK = 10;
 
-
     @Configuration
     public Option[] config() throws IOException {
         Option[] options = super.config();
@@ -75,8 +72,8 @@
                         .build(withBnd())
                 ),
                 bundle(handlerJar.toURI().toURL().toExternalForm()),
-                bundle(dummyJar.toURI().toURL().toExternalForm()),
-                mavenBundle().groupId("org.apache.felix").artifactId("org.osgi.compendium").version("1.4.0"));
+                bundle(dummyJar.toURI().toURL().toExternalForm())
+        );
     }
 
     /**
@@ -150,7 +147,6 @@
         }
     }
 
-
     /**
      * Test if the bind and unbind methods when the bind services are registered before the instance creation
      */
