diff --git a/framework/src/main/java/org/apache/felix/framework/BundleContextImpl.java b/framework/src/main/java/org/apache/felix/framework/BundleContextImpl.java
index 2004bb8..c731253 100644
--- a/framework/src/main/java/org/apache/felix/framework/BundleContextImpl.java
+++ b/framework/src/main/java/org/apache/felix/framework/BundleContextImpl.java
@@ -529,8 +529,11 @@
     /**
      * @see org.osgi.framework.BundleContext#getServiceObjects(org.osgi.framework.ServiceReference)
      */
-    public <S> ServiceObjects<S> getServiceObjects(ServiceReference<S> reference)
+    public <S> ServiceObjects<S> getServiceObjects(final ServiceReference<S> ref)
     {
-        throw new UnsupportedOperationException(); // TODO
+        // Get the service registration.
+        final ServiceRegistrationImpl reg =
+            ((ServiceRegistrationImpl.ServiceReferenceImpl) ref).getRegistration();
+        return reg.getServiceObjects(m_bundle);
     }
 }
\ No newline at end of file
diff --git a/framework/src/main/java/org/apache/felix/framework/Felix.java b/framework/src/main/java/org/apache/felix/framework/Felix.java
index 4ca089e..cf3d073 100644
--- a/framework/src/main/java/org/apache/felix/framework/Felix.java
+++ b/framework/src/main/java/org/apache/felix/framework/Felix.java
@@ -5297,11 +5297,36 @@
         return m_urlHandlersActivator.getContentHandlerService(mimeType);
     }
 
-    /* (non-Javadoc)
+    /**
      * @see org.osgi.framework.launch.Framework#init(org.osgi.framework.FrameworkListener[])
      */
-    public void init(FrameworkListener... listeners) throws BundleException {
-        this.init(); // TODO
-    }
+    public void init(final FrameworkListener... listeners) throws BundleException
+    {
+        // add framework listeners
+        if ( listeners != null )
+        {
+            for(final FrameworkListener fl : listeners)
+            {
+                addFrameworkListener(this, fl);
+            }
+        }
 
+        // call init
+        try
+        {
+            this.init();
+        }
+
+        // remove framework listeners
+        finally
+        {
+            if ( listeners != null )
+            {
+                for(final FrameworkListener fl : listeners)
+                {
+                    removeFrameworkListener(this, fl);
+                }
+            }
+        }
+    }
 }
diff --git a/framework/src/main/java/org/apache/felix/framework/ServiceRegistrationImpl.java b/framework/src/main/java/org/apache/felix/framework/ServiceRegistrationImpl.java
index e539ebd..93eab8a 100644
--- a/framework/src/main/java/org/apache/felix/framework/ServiceRegistrationImpl.java
+++ b/framework/src/main/java/org/apache/felix/framework/ServiceRegistrationImpl.java
@@ -38,6 +38,7 @@
 import org.osgi.framework.Constants;
 import org.osgi.framework.ServiceException;
 import org.osgi.framework.ServiceFactory;
+import org.osgi.framework.ServiceObjects;
 import org.osgi.framework.ServiceReference;
 import org.osgi.framework.ServiceRegistration;
 import org.osgi.framework.wiring.BundleCapability;
@@ -403,6 +404,14 @@
         }
     }
 
+    /**
+     * Get the service objects for the provided bundle
+     */
+    public ServiceObjects getServiceObjects(Bundle bundle)
+    {
+        throw new UnsupportedOperationException();
+    }
+
     //
     // ServiceReference implementation
     //
