diff --git a/scr/src/main/java/org/apache/felix/scr/ComponentFactoryImpl.java b/scr/src/main/java/org/apache/felix/scr/ComponentFactoryImpl.java
index deb3a36..50dd172 100644
--- a/scr/src/main/java/org/apache/felix/scr/ComponentFactoryImpl.java
+++ b/scr/src/main/java/org/apache/felix/scr/ComponentFactoryImpl.java
@@ -156,7 +156,7 @@
         else if ( cm instanceof ImmediateComponentManager )
         {
             // update the configuration as if called as ManagedService
-            ( ( ImmediateComponentManager ) cm ).updated( configuration );
+            ( ( ImmediateComponentManager ) cm ).reconfigure( configuration );
         }
     }
 
diff --git a/scr/src/main/java/org/apache/felix/scr/ImmediateComponentManager.java b/scr/src/main/java/org/apache/felix/scr/ImmediateComponentManager.java
index 14d5693..12b4935 100644
--- a/scr/src/main/java/org/apache/felix/scr/ImmediateComponentManager.java
+++ b/scr/src/main/java/org/apache/felix/scr/ImmediateComponentManager.java
@@ -39,7 +39,7 @@
  * implementation object's lifecycle.
  *
  */
-class ImmediateComponentManager extends AbstractComponentManager implements ManagedService
+class ImmediateComponentManager extends AbstractComponentManager
 {
     // the component ID
     private long m_componentId;
@@ -87,8 +87,17 @@
                 + getComponentMetadata().getName() );
             props.put( Constants.SERVICE_VENDOR, "Apache Software Foundation" );
 
+            // register an anonymous managed service instance
+            ManagedService ms = new ManagedService()
+            {
+                public void updated( Dictionary properties )
+                {
+                    reconfigure( properties );
+                }
+            };
+
             m_managedServiceRegistration = activator.getBundleContext().registerService(
-                ManagedService.class.getName(), this, props );
+                ManagedService.class.getName(), ms, props );
         }
     }
 
@@ -372,8 +381,6 @@
     }
 
 
-    //---------- ManagedService interface
-
     /**
      * Called by the Configuration Admin Service to update the component with
      * Configuration properties.
@@ -382,7 +389,7 @@
      *      the Configuration Admin Service or <code>null</code> if there is
      *      no configuration or if the configuration has just been deleted.
      */
-    public void updated( Dictionary configuration )
+    public void reconfigure( Dictionary configuration )
     {
         // store the properties
         m_configurationProperties = configuration;
