FELIX-3902 fix SingleDynamic config change problem

git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1446433 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/scr/changelog.txt b/scr/changelog.txt
index b99e774..4e957a8 100644
--- a/scr/changelog.txt
+++ b/scr/changelog.txt
@@ -16,6 +16,7 @@
     * [FELIX-3888] - [DS] Expose the insides of ScrCommand as a service directly and enhance it
     * [FELIX-3890] - [DS] We might try to unbind a service we couldn't get and didn't bind
     * [FELIX-3891] - [DS] synchronization around registerService can create deadlocks
+    * [FELIX-3902] - [DS] Single dynamic mandatory reference problem on target filter update
 
 Changes from 1.6.0 to 1.6.2
 ---------------------------
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 01cc286..d17a04d 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
@@ -626,7 +626,7 @@
         public void addedService( ServiceReference<T> serviceReference, RefPair<T> refPair, int trackingCount )
         {
         	boolean tracked = false;
-            if ( getPreviousRefMap().get( serviceReference ) == null )
+            if ( getPreviousRefMap().remove( serviceReference ) == null )
             {
                 if (isActive() )
                 {