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 25b27a8..d7891a1 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
@@ -839,15 +839,6 @@
     }
 
     //---------- Component handling methods ----------------------------------
-    /**
-     * Method is called by {@link State#activate(AbstractComponentManager)} in STATE_ACTIVATING or by
-     * {@link DelayedComponentManager#getService(Bundle, ServiceRegistration)}
-     * in STATE_REGISTERED.
-     *
-     * @return <code>true</code> if creation of the component succeeded. If
-     *       <code>false</code> is returned, the cause should have been logged.
-     */
-    protected abstract boolean createComponent();
 
     protected abstract void deleteComponent( int reason );
 
diff --git a/scr/src/main/java/org/apache/felix/scr/impl/manager/ComponentFactoryImpl.java b/scr/src/main/java/org/apache/felix/scr/impl/manager/ComponentFactoryImpl.java
index 8b08da9..93d355c 100644
--- a/scr/src/main/java/org/apache/felix/scr/impl/manager/ComponentFactoryImpl.java
+++ b/scr/src/main/java/org/apache/felix/scr/impl/manager/ComponentFactoryImpl.java
@@ -217,15 +217,6 @@
    }
 
     /**
-     * The component factory does not have a component to create.
-     */
-    protected boolean createComponent()
-    {
-        return true;
-    }
-
-
-    /**
      * The component factory does not have a component to delete.
      * <p>
      * But in the backwards compatible case any instances created for factory
diff --git a/scr/src/main/java/org/apache/felix/scr/impl/manager/ServiceFactoryComponentManager.java b/scr/src/main/java/org/apache/felix/scr/impl/manager/ServiceFactoryComponentManager.java
index 0831bb8..e55b64d 100644
--- a/scr/src/main/java/org/apache/felix/scr/impl/manager/ServiceFactoryComponentManager.java
+++ b/scr/src/main/java/org/apache/felix/scr/impl/manager/ServiceFactoryComponentManager.java
@@ -57,16 +57,6 @@
 
 
     /* (non-Javadoc)
-     * @see org.apache.felix.scr.AbstractComponentManager#createComponent()
-     */
-    protected boolean createComponent()
-    {
-        // nothing to do, this is handled by getService
-        return true;
-    }
-
-
-    /* (non-Javadoc)
      * @see org.apache.felix.scr.AbstractComponentManager#deleteComponent()
      */
     protected void deleteComponent( int reason )
@@ -86,17 +76,6 @@
 
 
     /* (non-Javadoc)
-     * @see org.apache.felix.scr.AbstractComponentManager#getInstance()
-     */
-    S getInstance()
-    {
-        // this method is not expected to be called as the base call is
-        // overwritten in the ComponentContextImpl class
-        return null;
-    }
-
-
-    /* (non-Javadoc)
      * @see org.osgi.framework.ServiceFactory#getService(org.osgi.framework.Bundle, org.osgi.framework.ServiceRegistration)
      */
     public S getService( Bundle bundle, ServiceRegistration<S> registration )
diff --git a/scr/src/main/java/org/apache/felix/scr/impl/manager/SingleComponentManager.java b/scr/src/main/java/org/apache/felix/scr/impl/manager/SingleComponentManager.java
index 0c30ea8..c84e1bd 100644
--- a/scr/src/main/java/org/apache/felix/scr/impl/manager/SingleComponentManager.java
+++ b/scr/src/main/java/org/apache/felix/scr/impl/manager/SingleComponentManager.java
@@ -103,7 +103,7 @@
     // 4. Call the activate method, if present
     // if this method is overwritten, the deleteComponent method should
     // also be overwritten
-    protected boolean createComponent()
+    private boolean createComponent()
     {
         if ( !isStateLocked() )
         {
@@ -181,7 +181,7 @@
      *
      * @return the object that implements the services
      */
-    S getInstance()
+    private S getInstance()
     {
         return m_componentContext == null? null: m_componentContext.getImplementationObject( true );
     }
