diff --git a/src/com/android/settings/DreamSettings.java b/src/com/android/settings/DreamSettings.java
index 41cd75d..9119f7b 100644
--- a/src/com/android/settings/DreamSettings.java
+++ b/src/com/android/settings/DreamSettings.java
@@ -150,7 +150,7 @@
 
         // create "start" action
         MenuItem start = createMenuItem(menu, R.string.screensaver_settings_dream_start,
-                MenuItem.SHOW_AS_ACTION_ALWAYS,
+                MenuItem.SHOW_AS_ACTION_NEVER,
                 isEnabled, new Runnable(){
                     @Override
                     public void run() {
@@ -160,7 +160,7 @@
         // create "when to dream" overflow menu item
         MenuItem whenToDream = createMenuItem(menu,
                 R.string.screensaver_settings_when_to_dream,
-                MenuItem.SHOW_AS_ACTION_IF_ROOM,
+                MenuItem.SHOW_AS_ACTION_NEVER,
                 isEnabled,
                 new Runnable() {
                     @Override
diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java
index 7a9adaf..f814a9b 100644
--- a/src/com/android/settings/SettingsActivity.java
+++ b/src/com/android/settings/SettingsActivity.java
@@ -304,6 +304,8 @@
     private ActionBar mActionBar;
     private boolean mDisplayHomeAsUpEnabled;
 
+    private boolean mIsShowingDashboard;
+
     private SearchView mSearchView;
     private MenuItem mSearchMenuItem;
     private boolean mSearchMenuItemExpanded = false;
@@ -387,6 +389,11 @@
 
     @Override
     public boolean onCreateOptionsMenu(Menu menu) {
+        // Only show the Search menu on the main screen (Dashboard)
+        if (!mIsShowingDashboard) {
+            return true;
+        }
+
         MenuInflater inflater = getMenuInflater();
         inflater.inflate(R.menu.options_menu, menu);
 
@@ -442,7 +449,9 @@
         // Getting Intent properties can only be done after the super.onCreate(...)
         final String initialFragmentName = getIntent().getStringExtra(EXTRA_SHOW_FRAGMENT);
 
-        if (initialFragmentName == null) {
+        mIsShowingDashboard = (initialFragmentName == null);
+
+        if (mIsShowingDashboard) {
             Index.getInstance(this).update();
         }
 
@@ -468,7 +477,7 @@
             // We need to build the Categories in all cases
             buildDashboardCategories(mCategories);
 
-            if (initialFragmentName != null) {
+            if (!mIsShowingDashboard) {
                 final ComponentName cn = getIntent().getComponent();
                 // No UP is we are launched thru a Settings shortcut
                 if (!cn.getClassName().equals(SubSettings.class.getName())) {
