diff --git a/scr/src/main/java/org/apache/felix/scr/impl/manager/DependencyManager.java b/scr/src/main/java/org/apache/felix/scr/impl/manager/DependencyManager.java
index 190d03d..b405c50 100644
--- a/scr/src/main/java/org/apache/felix/scr/impl/manager/DependencyManager.java
+++ b/scr/src/main/java/org/apache/felix/scr/impl/manager/DependencyManager.java
@@ -1765,7 +1765,8 @@
         final ServiceTracker<T, RefPair<T>> oldTracker = trackerRef.get();
         Customizer<T> customizer = newCustomizer();
         customizer.setPreviousRefMap( refMap );
-        ServiceTracker<T, RefPair<T>> tracker = new ServiceTracker<T, RefPair<T>>( m_componentManager.getActivator().getBundleContext(), m_targetFilter, customizer );
+        boolean initialActive = oldTracker != null && oldTracker.isActive();
+        ServiceTracker<T, RefPair<T>> tracker = new ServiceTracker<T, RefPair<T>>( m_componentManager.getActivator().getBundleContext(), m_targetFilter, customizer, initialActive );
         customizer.setTracker( tracker );
         trackerRef.set( tracker );
         registered = true;
diff --git a/scr/src/main/java/org/apache/felix/scr/impl/manager/ServiceTracker.java b/scr/src/main/java/org/apache/felix/scr/impl/manager/ServiceTracker.java
index f31a938..d32ce39 100644
--- a/scr/src/main/java/org/apache/felix/scr/impl/manager/ServiceTracker.java
+++ b/scr/src/main/java/org/apache/felix/scr/impl/manager/ServiceTracker.java
@@ -232,15 +232,17 @@
 	 *        is null, then this {@code ServiceTracker} will be used as the
 	 *        {@code ServiceTrackerCustomizer} and this {@code ServiceTracker}
 	 *        will call the {@code ServiceTrackerCustomizer} methods on itself.
+	 * @param initialActive Initial active state of the tracker.
 	 * @since 1.1
 	 */
-	public ServiceTracker(final BundleContext context, final Filter filter, final ServiceTrackerCustomizer<S, T> customizer) {
+	public ServiceTracker(final BundleContext context, final Filter filter, final ServiceTrackerCustomizer<S, T> customizer, boolean initialActive) {
 		this.context = context;
 		this.trackReference = null;
 		this.trackClass = null;
 		this.listenerFilter = filter.toString();
 		this.filter = filter;
 		this.customizer = customizer;
+		this.active = initialActive;
 		if ((context == null) || (filter == null)) {
 			/*
 			 * we throw a NPE here to be consistent with the other constructors
@@ -424,7 +426,6 @@
             if (outgoing == null) {
                 return;
             }
-            tracked = null;
             if (DEBUG) {
                 System.out.println("ServiceTracker.close: " + filter);
             }
@@ -432,6 +433,7 @@
         for (ServiceReference<S> ref: toUntrack.keySet()) {
             outgoing.untrack( ref, null );
         }
+        tracked = null;
     }
 
 	/**
