diff --git a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/AdapterTest.java b/dependencymanager/test/src/test/java/org/apache/felix/dm/test/AdapterTest.java
index a31fcc4..e357811 100644
--- a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/AdapterTest.java
+++ b/dependencymanager/test/src/test/java/org/apache/felix/dm/test/AdapterTest.java
@@ -57,7 +57,7 @@
         m.add(sp);
         m.add(sp2);
         m.add(sa);
-        e.waitForStep(5, 2000);
+        e.waitForStep(5, 15000);
         m.remove(sa);
         m.remove(sp2);
         m.remove(sp);
diff --git a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/AspectTest.java b/dependencymanager/test/src/test/java/org/apache/felix/dm/test/AspectTest.java
index 306625c..29f079a 100644
--- a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/AspectTest.java
+++ b/dependencymanager/test/src/test/java/org/apache/felix/dm/test/AspectTest.java
@@ -58,17 +58,17 @@
         Service sa = m.createAspectService(ServiceInterface.class, "(|(!(" + Constants.SERVICE_RANKING + "=*))(" + Constants.SERVICE_RANKING + "<=0))", new ServiceAspect(e), new Properties() {{ put(Constants.SERVICE_RANKING, Integer.valueOf(1)); }} );
         m.add(sc);
         m.add(sp);
-        e.waitForStep(3, 2000);
+        e.waitForStep(3, 15000);
         m.add(sa);
-        e.waitForStep(4, 2000);
+        e.waitForStep(4, 15000);
         m.add(sp2);
-        e.waitForStep(5, 2000);
+        e.waitForStep(5, 15000);
         e.step(6);
-        e.waitForStep(9, 2000);
+        e.waitForStep(9, 15000);
         m.remove(sa);
-        e.waitForStep(11, 2000);
+        e.waitForStep(11, 15000);
         e.step(12);
-        e.waitForStep(13, 2000);
+        e.waitForStep(13, 15000);
         m.remove(sp2);
         m.remove(sp);
         m.remove(sc);
@@ -149,10 +149,10 @@
             m_ensure.step(1);
             m_service.invoke(Ensure.createRunnableStep(m_ensure, 2));
             m_ensure.step(3);
-            m_ensure.waitForStep(6, 2000);
+            m_ensure.waitForStep(6, 15000);
             m_service.invoke(Ensure.createRunnableStep(m_ensure, 8));
             m_ensure.step(10);
-            m_ensure.waitForStep(12, 2000);
+            m_ensure.waitForStep(12, 15000);
             m_service.invoke(Ensure.createRunnableStep(m_ensure, 13));
         }
     }
diff --git a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/ConfigurationDependencyTest.java b/dependencymanager/test/src/test/java/org/apache/felix/dm/test/ConfigurationDependencyTest.java
index cb089ed..84efcfb 100644
--- a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/ConfigurationDependencyTest.java
+++ b/dependencymanager/test/src/test/java/org/apache/felix/dm/test/ConfigurationDependencyTest.java
@@ -65,7 +65,7 @@
         m.add(s1);
         m.add(s2);
         m.add(s3);
-        e.waitForStep(4, 2000);
+        e.waitForStep(4, 15000);
         m.remove(s1);
         m.remove(s2);
         m.remove(s3);
diff --git a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/MultipleServiceDependencyTest.java b/dependencymanager/test/src/test/java/org/apache/felix/dm/test/MultipleServiceDependencyTest.java
index 03b053f..bcb0290 100644
--- a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/MultipleServiceDependencyTest.java
+++ b/dependencymanager/test/src/test/java/org/apache/felix/dm/test/MultipleServiceDependencyTest.java
@@ -58,13 +58,13 @@
        m.add(provider);
        m.add(providerWithHighRank);
        m.add(consumer);
-       e.waitForStep(3, 1000);
+       e.waitForStep(3, 15000);
        m.remove(providerWithHighRank);
        e.step(4);
-       e.waitForStep(5, 1000);
+       e.waitForStep(5, 15000);
        m.remove(provider);
        m.remove(consumer);
-       e.waitForStep(6, 1000);
+       e.waitForStep(6, 15000);
    }
 
    @Test
@@ -78,14 +78,14 @@
        Service consumer = m.createService().setImplementation(new ServiceConsumer(e)).add(m.createServiceDependency().setService(ServiceInterface.class).setRequired(true));
        m.add(provider2);
        m.add(consumer);
-       e.waitForStep(3, 1000);
+       e.waitForStep(3, 15000);
        m.add(provider);
        m.remove(provider2);
        e.step(4);
-       e.waitForStep(5, 1000);
+       e.waitForStep(5, 15000);
        m.remove(provider);
        m.remove(consumer);
-       e.waitForStep(6, 1000);
+       e.waitForStep(6, 15000);
    }
 
    @Test
@@ -103,14 +103,14 @@
               .setCallbacks("add", "remove"));
        m.add(provider2);
        m.add(consumer);
-       e.waitForStep(3, 1000);
+       e.waitForStep(3, 15000);
        m.add(provider);
        m.remove(provider2);
        e.step(4);
-       e.waitForStep(5, 1000);
+       e.waitForStep(5, 15000);
        m.remove(provider);
        m.remove(consumer);
-       e.waitForStep(6, 1000);
+       e.waitForStep(6, 15000);
    }
 
    static interface ServiceInterface {
@@ -154,7 +154,7 @@
            m_ensure.step(1);
            m_service.invoke();
            m_ensure.step(3);
-           m_ensure.waitForStep(4, 1000);
+           m_ensure.waitForStep(4, 15000);
            m_service.invoke();
        }
 
diff --git a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/SharingDependenciesWithMultipleServicesTest.java b/dependencymanager/test/src/test/java/org/apache/felix/dm/test/SharingDependenciesWithMultipleServicesTest.java
index 4eb1980..44513e8 100644
--- a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/SharingDependenciesWithMultipleServicesTest.java
+++ b/dependencymanager/test/src/test/java/org/apache/felix/dm/test/SharingDependenciesWithMultipleServicesTest.java
@@ -74,9 +74,9 @@
         
         m.add(provider);
         m.add(consumer1);
-        e.waitForStep(3, 2000);
+        e.waitForStep(3, 15000);
         m.add(consumer2);
-        e.waitForStep(6, 2000);
+        e.waitForStep(6, 15000);
         m.remove(provider);
         m.remove(consumer1);
         m.remove(consumer2);
@@ -97,10 +97,10 @@
         m.add(provider);
         // add the first consumer, and wait until its updated() method is invoked
         m.add(consumer1);
-        e.waitForStep(2, 2000);
+        e.waitForStep(2, 15000);
         // add the second consumer, and wait until its updated() method is invoked
         m.add(consumer2);
-        e.waitForStep(3, 2000);
+        e.waitForStep(3, 15000);
         // break down the test again
         m.remove(provider);
         m.remove(consumer1);
@@ -118,9 +118,9 @@
         Service consumer2 = m.createService().setImplementation(new BundleConsumer(e, 2)).add(dependency);
         
         m.add(consumer1);
-        e.waitForStep(1, 2000);
+        e.waitForStep(1, 15000);
         m.add(consumer2);
-        e.waitForStep(2, 2000);
+        e.waitForStep(2, 15000);
         m.remove(consumer2);
         m.remove(consumer1);
     }
@@ -137,9 +137,9 @@
         Service resourceProvider = m.createService().setImplementation(new ResourceProvider()).add(m.createServiceDependency().setService(ResourceHandler.class).setCallbacks("add", "remove"));;
         m.add(resourceProvider);
         m.add(consumer1);
-        e.waitForStep(1, 2000);
+        e.waitForStep(1, 15000);
         m.add(consumer2);
-        e.waitForStep(2, 2000);
+        e.waitForStep(2, 15000);
         m.remove(consumer2);
         m.remove(consumer1);
         m.remove(resourceProvider);
@@ -321,5 +321,4 @@
             return null;
         }
     }
-
 }
diff --git a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/TemporalServiceDependencyTest.java b/dependencymanager/test/src/test/java/org/apache/felix/dm/test/TemporalServiceDependencyTest.java
index 47fd5da..cd76f5b 100644
--- a/dependencymanager/test/src/test/java/org/apache/felix/dm/test/TemporalServiceDependencyTest.java
+++ b/dependencymanager/test/src/test/java/org/apache/felix/dm/test/TemporalServiceDependencyTest.java
@@ -56,13 +56,13 @@
         m.add(sc);
         // now add the first provider
         m.add(sp);
-        e.waitForStep(2, 1000);
+        e.waitForStep(2, 15000);
         // and remove it again (this should not affect the consumer yet)
         m.remove(sp);
         // now add the second provider
         m.add(sp2);
         e.step(3);
-        e.waitForStep(4, 1000);
+        e.waitForStep(4, 15000);
         // and remove it again
         m.remove(sp2);
         // finally remove the consumer
@@ -111,7 +111,7 @@
         
         public void run() {
             m_service.invoke();
-            m_ensure.waitForStep(3, 1000);
+            m_ensure.waitForStep(3, 15000);
             m_service.invoke();
         }
         
