diff --git a/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java b/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java
index 106431b..6503561 100644
--- a/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java
+++ b/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java
@@ -759,6 +759,9 @@
                 }
                 newRegistration.unregister();
             }
+            else {
+                log( LogService.LOG_DEBUG, "Existing service registration, not registering", null );
+            }
         }
         finally
         {
@@ -789,6 +792,14 @@
             log( LogService.LOG_DEBUG, "Unregistering services", null );
             sr.unregister();
         }
+        else if (sr == null)
+        {
+            log( LogService.LOG_DEBUG, "Service already unregistered", null);
+        }
+        else
+        {
+            log( LogService.LOG_DEBUG, "Service unregistered concurrently by another thread", null);
+        }
     }
 
     boolean initDependencyManagers()
@@ -1274,8 +1285,8 @@
      */
     void changeState( State newState )
     {
-        log( LogService.LOG_DEBUG, "State transition : {0} -> {1}", new Object[]
-            { m_state, newState }, null );
+        log( LogService.LOG_DEBUG, "State transition : {0} -> {1} : service reg: {2}", new Object[]
+            { m_state, newState, m_serviceRegistration.get() }, null );
         m_state = newState;
     }
 
@@ -1386,8 +1397,8 @@
 
         private void log( AbstractComponentManager acm, String event )
         {
-            acm.log( LogService.LOG_DEBUG, "Current state: {0}, Event: {1}", new Object[]
-                { m_name, event }, null );
+            acm.log( LogService.LOG_DEBUG, "Current state: {0}, Event: {1}, Service registration: {2}", new Object[]
+                { m_name, event, acm.m_serviceRegistration.get() }, null );
         }
 
         void doDeactivate( AbstractComponentManager acm, int reason )
@@ -1620,6 +1631,16 @@
 
         }
 
+        void deactivate( AbstractComponentManager acm, int reason )
+        {
+            acm.log( LogService.LOG_DEBUG, "Deactivating component", null );
+
+            // catch any problems from deleting the component to prevent the
+            // component to remain in the deactivating state !
+            doDeactivate(acm, reason);
+
+            acm.log( LogService.LOG_DEBUG, "Component deactivated", null );
+        }
 
         void disable( AbstractComponentManager acm )
         {
@@ -1675,7 +1696,10 @@
             // component to remain in the deactivating state !
             doDeactivate(acm, reason);
 
-            acm.changeState( Unsatisfied.getInstance() );
+            if ( acm.state() == this )
+            {
+                acm.changeState( Unsatisfied.getInstance() );
+            }
             acm.log( LogService.LOG_DEBUG, "Component deactivated", null );
         }
 
