diff --git a/shell/src/main/java/org/apache/felix/shell/impl/StartCommandImpl.java b/shell/src/main/java/org/apache/felix/shell/impl/StartCommandImpl.java
index 5d81fb5..4646254 100644
--- a/shell/src/main/java/org/apache/felix/shell/impl/StartCommandImpl.java
+++ b/shell/src/main/java/org/apache/felix/shell/impl/StartCommandImpl.java
@@ -29,6 +29,7 @@
 public class StartCommandImpl extends InstallCommandImpl implements Command
 {
     private static final String TRANSIENT_SWITCH = "-t";
+    private static final String POLICY_SWITCH = "-p";
 
     private BundleContext m_context = null;
 
@@ -45,7 +46,7 @@
 
     public String getUsage()
     {
-        return "start [-t] <id> [<id> <URL> ...]";
+        return "start [-t | -p] <id> [<id> <URL> ...]";
     }
 
     public String getShortDescription()
@@ -67,15 +68,23 @@
             tokens.add(st.nextToken());
         }
 
-        // Default switch value.
-        boolean isTransient = false;
+        // Default switch values.
+        int options = 0;
 
         // Check for "transient" switch.
         if (tokens.contains(TRANSIENT_SWITCH))
         {
             // Remove the switch and set boolean flag.
             tokens.remove(TRANSIENT_SWITCH);
-            isTransient = true;
+            options |= Bundle.START_TRANSIENT;
+        }
+
+        // Check for "start policy" switch.
+        if (tokens.contains(POLICY_SWITCH))
+        {
+            // Remove the switch and set boolean flag.
+            tokens.remove(POLICY_SWITCH);
+            options |= Bundle.START_ACTIVATION_POLICY;
         }
 
         // There should be at least one bundle id.
@@ -102,7 +111,7 @@
 
                     if (bundle != null)
                     {
-                        bundle.start(isTransient ? Bundle.START_TRANSIENT : 0);
+                        bundle.start(options);
                     }
                     else
                     {
diff --git a/shell/src/main/java/org/apache/felix/shell/impl/StopCommandImpl.java b/shell/src/main/java/org/apache/felix/shell/impl/StopCommandImpl.java
index 01b4d9c..89464a8 100644
--- a/shell/src/main/java/org/apache/felix/shell/impl/StopCommandImpl.java
+++ b/shell/src/main/java/org/apache/felix/shell/impl/StopCommandImpl.java
@@ -67,14 +67,14 @@
         }
 
         // Default switch value.
-        boolean isTransient = false;
+        int options = 0;
 
         // Check for "transient" switch.
         if (tokens.contains(TRANSIENT_SWITCH))
         {
             // Remove the switch and set boolean flag.
             tokens.remove(TRANSIENT_SWITCH);
-            isTransient = true;
+            options |= Bundle.STOP_TRANSIENT;
         }
 
         // There should be at least one bundle id.
@@ -90,7 +90,7 @@
                     Bundle bundle = m_context.getBundle(l);
                     if (bundle != null)
                     {
-                        bundle.stop(isTransient ? Bundle.STOP_TRANSIENT : 0);
+                        bundle.stop(options);
                     }
                     else
                     {
