diff --git a/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/ServiceImpl.java b/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/ServiceImpl.java
index aa3766a..bf980f5 100644
--- a/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/ServiceImpl.java
+++ b/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/ServiceImpl.java
@@ -293,15 +293,7 @@
             m_state = newState;
         }
         if (newState.isAllRequiredAvailable()) {
-        	m_executor.enqueue(new Runnable() {
-        		public void run() {
-        			updateInstance(dependency);
-        		}
-        		public String toString() {
-        		    return "update instance " + dependency;
-        		}
-        	});
-        	m_executor.execute();
+        	updateInstance(dependency);
         }
         calculateStateChanges(oldState, newState);
     }
@@ -312,12 +304,7 @@
         	state = m_state;
         }
         if (state.isAllRequiredAvailable()) {
-        	m_executor.enqueue(new Runnable() {
-        		public void run() {
-        			updateInstance(dependency);
-        		}
-        	});
-        	m_executor.execute();
+        	updateInstance(dependency);
         }
     }
 
@@ -329,12 +316,7 @@
             m_state = newState;
         }
         if (newState.isAllRequiredAvailable()) {
-        	m_executor.enqueue(new Runnable() {
-        		public void run() {
-        			updateInstance(dependency);
-        		}
-        	});
-        	m_executor.execute();
+        	updateInstance(dependency);
         }
         calculateStateChanges(oldState, newState);
     }
