diff --git a/framework/src/main/java/org/apache/felix/framework/BundleImpl.java b/framework/src/main/java/org/apache/felix/framework/BundleImpl.java
index 391d996..223809a 100644
--- a/framework/src/main/java/org/apache/felix/framework/BundleImpl.java
+++ b/framework/src/main/java/org/apache/felix/framework/BundleImpl.java
@@ -371,6 +371,11 @@
         m_felix.startBundle(this, true);
     }
 
+	public void start(int options) throws BundleException
+    {
+        throw new UnsupportedOperationException("This feature has not yet been implemented.");
+    }
+
     public void update() throws BundleException
     {
         update(null);
@@ -402,6 +407,11 @@
         m_felix.stopBundle(this, true);
     }
 
+	public void stop(int options) throws BundleException
+    {
+        throw new UnsupportedOperationException("This feature has not yet been implemented.");
+    }
+
     public void uninstall() throws BundleException
     {
         Object sm = System.getSecurityManager();
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 54f720b..7793b36 100644
--- a/framework/src/main/java/org/apache/felix/framework/Felix.java
+++ b/framework/src/main/java/org/apache/felix/framework/Felix.java
@@ -893,6 +893,11 @@
         fireFrameworkEvent(FrameworkEvent.STARTED, this, null);
     }
 
+	public void start(int options) throws BundleException
+    {
+        throw new UnsupportedOperationException("This feature has not yet been implemented.");
+    }
+
     /**
      * This method cleanly shuts down the framework, it must be called at the
      * end of a session in order to shutdown all active bundles.
@@ -910,6 +915,11 @@
         stopBundle(this, true);
     }
 
+	public void stop(int options) throws BundleException
+    {
+        throw new UnsupportedOperationException("This feature has not yet been implemented.");
+    }
+
     public void stopAndWait()
     {
         // Shut the framework down by calling stop() on the system bundle.
diff --git a/framework/src/main/java/org/apache/felix/framework/ServiceReferenceImpl.java b/framework/src/main/java/org/apache/felix/framework/ServiceReferenceImpl.java
index b853c56..0aceb2b 100644
--- a/framework/src/main/java/org/apache/felix/framework/ServiceReferenceImpl.java
+++ b/framework/src/main/java/org/apache/felix/framework/ServiceReferenceImpl.java
@@ -192,4 +192,9 @@
 
         return allow;
     }
+
+    public int compareTo(Object reference)
+    {
+        throw new UnsupportedOperationException("This feature has not yet been implemented.");
+    }
 }
\ No newline at end of file
diff --git a/framework/src/main/java/org/apache/felix/framework/StartLevelImpl.java b/framework/src/main/java/org/apache/felix/framework/StartLevelImpl.java
index 34a61b3..7d1044d 100644
--- a/framework/src/main/java/org/apache/felix/framework/StartLevelImpl.java
+++ b/framework/src/main/java/org/apache/felix/framework/StartLevelImpl.java
@@ -21,6 +21,7 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import javax.naming.OperationNotSupportedException;
 import org.osgi.framework.AdminPermission;
 import org.osgi.framework.Bundle;
 import org.osgi.service.startlevel.StartLevel;
@@ -215,6 +216,14 @@
         return m_felix.isBundlePersistentlyStarted(bundle);
     }
 
+    /* (non-Javadoc)
+     * @see org.osgi.service.startlevel.StartLevel#isBundleActivationPolicyUsed(org.osgi.framework.Bundle)
+    **/
+	public boolean isBundleActivationPolicyUsed(Bundle bundle)
+    {
+        throw new UnsupportedOperationException("This feature has not yet been implemented.");
+    }
+
     public void run()
     {
         Object request = null;
