diff --git a/ipojo/junit4osgi/maven-junit4osgi-plugin/pom.xml b/ipojo/junit4osgi/maven-junit4osgi-plugin/pom.xml
index f5c0852..da98d2a 100644
--- a/ipojo/junit4osgi/maven-junit4osgi-plugin/pom.xml
+++ b/ipojo/junit4osgi/maven-junit4osgi-plugin/pom.xml
@@ -37,7 +37,7 @@
       <groupId>org.apache.felix</groupId>
       <artifactId>org.apache.felix.framework</artifactId>
       <!--<version>3.1.0-SNAPSHOT</version>  -->
-      <version>3.0.2</version>
+      <version>4.0.3</version>
     </dependency>
     <dependency>
       <groupId>org.apache.maven</groupId>
diff --git a/ipojo/junit4osgi/maven-junit4osgi-plugin/src/main/java/org/apache/felix/ipojo/junit4osgi/plugin/Junit4osgiPlugin.java b/ipojo/junit4osgi/maven-junit4osgi-plugin/src/main/java/org/apache/felix/ipojo/junit4osgi/plugin/Junit4osgiPlugin.java
index 26765ba..7bd7c86 100644
--- a/ipojo/junit4osgi/maven-junit4osgi-plugin/src/main/java/org/apache/felix/ipojo/junit4osgi/plugin/Junit4osgiPlugin.java
+++ b/ipojo/junit4osgi/maven-junit4osgi-plugin/src/main/java/org/apache/felix/ipojo/junit4osgi/plugin/Junit4osgiPlugin.java
@@ -339,10 +339,10 @@
         int count2 = 0;
         while (! serviceStability && count < 500) {
             try {
-                ServiceReference[] refs = context.getServiceReferences(null, null);
+                ServiceReference[] refs = context.getServiceReferences((String) null, null);
                 count1 = refs.length;
                 Thread.sleep(500);
-                refs = context.getServiceReferences(null, null);
+                refs = context.getServiceReferences((String) null, null);
                 count2 = refs.length;
                 serviceStability = count1 == count2;
             } catch (Exception e) {
@@ -360,7 +360,7 @@
         }
 
         try {
-            ServiceReference[] refs = context.getServiceReferences(null, null);
+            ServiceReference[] refs = context.getServiceReferences((String) null, null);
             getLog().debug("Service List");
             for (int i = 0; i < refs.length; i++) {
                 String[] itfs = (String[]) refs[i].getProperty(Constants.OBJECTCLASS);
