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 f773a20..0c03fe6 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
@@ -1461,6 +1461,11 @@
             doDeactivate( acm, reason );
         }
 
+        Object getService( ImmediateComponentManager dcm )
+        {
+            return null;
+        }
+
         void ungetService( ImmediateComponentManager dcm )
         {
             //do nothing, deactivate will unget all the services.
@@ -1623,6 +1628,17 @@
             acm.changeState( Disposed.getInstance() );
         }
 
+        Object getService( ImmediateComponentManager dcm )
+        {
+            //concurrent attempt to get service and remove dependency
+            return null;
+        }
+
+        void ungetService( ImmediateComponentManager dcm )
+        {
+            //do nothing.  This can arise if component is deactivated concurrently with ungetService on a delayed component.
+        }
+
     }
 
     protected static abstract class Satisfied extends State
@@ -1754,6 +1770,11 @@
             // no service can be returned (be prepared for more logging !!)
             return null;
         }
+
+        void ungetService( ImmediateComponentManager dcm )
+        {
+            //do nothing.  This can arise if component is deactivated concurrently with ungetService on a delayed component.
+        }
     }
 
     /**
diff --git a/scr/src/main/java/org/apache/felix/scr/impl/manager/ImmediateComponentManager.java b/scr/src/main/java/org/apache/felix/scr/impl/manager/ImmediateComponentManager.java
index 165ffbc..61d2fca 100644
--- a/scr/src/main/java/org/apache/felix/scr/impl/manager/ImmediateComponentManager.java
+++ b/scr/src/main/java/org/apache/felix/scr/impl/manager/ImmediateComponentManager.java
@@ -611,7 +611,8 @@
         boolean release = obtainReadLock( "ImmediateComponentManager.getService.1" );
         try
         {
-            if ( m_implementationObject == null )
+            Object implementationObject = m_implementationObject;
+            if ( implementationObject == null )
             {
                 releaseReadLock( "ImmediateComponentManager.getService.1" );
                 try
@@ -658,7 +659,7 @@
                 }
             }
             m_useCount++;
-            return state().getService( this );
+            return implementationObject;
         }
         finally
         {
