diff --git a/res/layout-land/nav_screen.xml b/res/layout-land/nav_screen.xml
index 8e10f02..5a3a037 100644
--- a/res/layout-land/nav_screen.xml
+++ b/res/layout-land/nav_screen.xml
@@ -32,28 +32,14 @@
             android:id="@+id/newtab"
             android:layout_width="wrap_content"
             android:layout_height="match_parent"
-            android:paddingLeft="16dip"
-            android:paddingRight="16dip"
             style="@style/HoloButton"
             android:gravity="center_vertical"
             android:contentDescription="@string/accessibility_button_newtab"
             android:src="@drawable/ic_new_window_holo_dark" />
         <ImageButton
-            android:id="@+id/newincognito"
-            android:layout_width="wrap_content"
-            android:layout_height="match_parent"
-            android:paddingLeft="16dip"
-            android:paddingRight="16dip"
-            style="@style/HoloButton"
-            android:gravity="center_vertical"
-            android:contentDescription="@string/accessibility_button_newincognitotab"
-            android:src="@drawable/ic_new_incognito_holo_dark" />
-        <ImageButton
             android:id="@+id/bookmarks"
             android:layout_width="wrap_content"
             android:layout_height="match_parent"
-            android:paddingLeft="16dip"
-            android:paddingRight="16dip"
             android:contentDescription="@string/accessibility_button_bookmarks"
             android:src="@drawable/ic_bookmarks_history_holo_dark"
             style="@style/HoloButton" />
@@ -61,8 +47,8 @@
             android:id="@+id/more"
             android:layout_width="wrap_content"
             android:layout_height="match_parent"
-            android:paddingLeft="16dip"
-            android:paddingRight="16dip"
+            android:paddingLeft="8dip"
+            android:paddingRight="8dip"
             style="@style/HoloButton"
             android:gravity="center_vertical"
             android:contentDescription="@string/accessibility_button_more"
diff --git a/res/layout/nav_screen.xml b/res/layout/nav_screen.xml
index 8ff4be3..4e00fa3 100644
--- a/res/layout/nav_screen.xml
+++ b/res/layout/nav_screen.xml
@@ -37,28 +37,14 @@
             android:id="@+id/newtab"
             android:layout_width="wrap_content"
             android:layout_height="match_parent"
-            android:paddingLeft="16dip"
-            android:paddingRight="16dip"
             style="@style/HoloButton"
             android:gravity="center_vertical"
             android:contentDescription="@string/accessibility_button_newtab"
             android:src="@drawable/ic_new_window_holo_dark" />
         <ImageButton
-            android:id="@+id/newincognito"
-            android:layout_width="wrap_content"
-            android:layout_height="match_parent"
-            android:paddingLeft="16dip"
-            android:paddingRight="16dip"
-            style="@style/HoloButton"
-            android:gravity="center_vertical"
-            android:contentDescription="@string/accessibility_button_newincognitotab"
-            android:src="@drawable/ic_new_incognito_holo_dark" />
-        <ImageButton
             android:id="@+id/bookmarks"
             android:layout_width="wrap_content"
             android:layout_height="match_parent"
-            android:paddingLeft="16dip"
-            android:paddingRight="16dip"
             android:contentDescription="@string/accessibility_button_bookmarks"
             android:src="@drawable/ic_bookmarks_history_holo_dark"
             style="@style/HoloButton" />
@@ -66,8 +52,8 @@
             android:id="@+id/more"
             android:layout_width="wrap_content"
             android:layout_height="match_parent"
-            android:paddingLeft="16dip"
-            android:paddingRight="16dip"
+            android:paddingLeft="8dip"
+            android:paddingRight="8dip"
             style="@style/HoloButton"
             android:gravity="center_vertical"
             android:contentDescription="@string/accessibility_button_more"
diff --git a/res/menu/browser.xml b/res/menu/browser.xml
index 0b46db6..1de97f7 100644
--- a/res/menu/browser.xml
+++ b/res/menu/browser.xml
@@ -28,10 +28,18 @@
                 android:icon="@*android:drawable/ic_menu_forward" />
         </group>
         <item
+            android:id="@+id/new_tab_menu_id"
+            android:title="@string/menu_new_tab"
+            android:icon="@drawable/ic_new_window_holo_dark" />
+        <item
             android:id="@+id/incognito_menu_id"
             android:title="@string/incognito_tab"
             android:icon="@drawable/ic_new_incognito_holo_dark" />
         <item
+            android:id="@+id/bookmarks_menu_id"
+            android:title="@string/bookmarks"
+            android:icon="@drawable/ic_bookmarks_history_holo_dark" />
+        <item
             android:id="@+id/add_bookmark_menu_id"
             android:title="@string/save_to_bookmarks"
             android:icon="@drawable/ic_bookmark_on_holo_dark"
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 4ed6c21..d9667bc 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -197,6 +197,8 @@
     <string name="open_all_in_new_window">Open all in new windows</string>
     <!-- Menu item to open a dialog which allows the user to enter a url or do search-->
     <string name="goto_dot">Go</string>
+    <!-- Menu item that opens up a new tab. [CHAR LIMIT=30] -->
+    <string name="menu_new_tab">Open new tab</string>
     <!-- Menu item that opens up a new incognito tab. [CHAR LIMIT=30] -->
     <string name="incognito_tab">Open new incognito tab</string>
     <!-- Menu item to switch to text selection mode for copy and paste. -->
diff --git a/src/com/android/browser/BaseUi.java b/src/com/android/browser/BaseUi.java
index 091126c..372f2a9 100644
--- a/src/com/android/browser/BaseUi.java
+++ b/src/com/android/browser/BaseUi.java
@@ -646,6 +646,10 @@
     }
 
     @Override
+    public void updateMenuState(Tab tab, Menu menu) {
+    }
+
+    @Override
     public void onOptionsMenuOpened() {
     }
 
diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java
index 457c2e0..f20968b 100644
--- a/src/com/android/browser/Controller.java
+++ b/src/com/android/browser/Controller.java
@@ -1520,6 +1520,7 @@
 
         MenuItem saveSnapshot = menu.findItem(R.id.save_snapshot_menu_id);
         saveSnapshot.setVisible(tab != null && !tab.isSnapshot());
+        mUi.updateMenuState(tab, menu);
     }
 
     public boolean onOptionsItemSelected(MenuItem item) {
diff --git a/src/com/android/browser/NavScreen.java b/src/com/android/browser/NavScreen.java
index 9c12ccf..face39e 100644
--- a/src/com/android/browser/NavScreen.java
+++ b/src/com/android/browser/NavScreen.java
@@ -52,7 +52,6 @@
     ImageButton mBookmarks;
     ImageButton mMore;
     ImageButton mNewTab;
-    ImageButton mNewIncognito;
     FrameLayout mHolder;
 
     TextView mTitle;
@@ -115,11 +114,9 @@
                 R.string.accessibility_transition_navscreen));
         mBookmarks = (ImageButton) findViewById(R.id.bookmarks);
         mNewTab = (ImageButton) findViewById(R.id.newtab);
-        mNewIncognito = (ImageButton) findViewById(R.id.newincognito);
         mMore = (ImageButton) findViewById(R.id.more);
         mBookmarks.setOnClickListener(this);
         mNewTab.setOnClickListener(this);
-        mNewIncognito.setOnClickListener(this);
         mMore.setOnClickListener(this);
         mScroller = (NavTabGallery) findViewById(R.id.scroller);
         mAdapter = new TabAdapter(mContext, mUiController.getTabControl());
@@ -160,9 +157,6 @@
             openNewTab();
         } else if (mMore == v) {
             showMenu();
-        } else if (mNewIncognito == v) {
-            mUi.hideNavScreen(true);
-            mUiController.openIncognitoTab();
         } else if (mTitle == v) {
             mUi.getTitleBar().setSkipTitleBarAnimations(true);
             close(false);
diff --git a/src/com/android/browser/PhoneUi.java b/src/com/android/browser/PhoneUi.java
index 853d935..901f5bd 100644
--- a/src/com/android/browser/PhoneUi.java
+++ b/src/com/android/browser/PhoneUi.java
@@ -164,11 +164,32 @@
 
     @Override
     public boolean onPrepareOptionsMenu(Menu menu) {
-        menu.setGroupVisible(R.id.NAV_MENU, (mNavScreen == null));
+        updateMenuState(mActiveTab, menu);
         return true;
     }
 
     @Override
+    public void updateMenuState(Tab tab, Menu menu) {
+        menu.setGroupVisible(R.id.NAV_MENU, (mNavScreen == null));
+        MenuItem bm = menu.findItem(R.id.bookmarks_menu_id);
+        if (bm != null) {
+            bm.setVisible(mNavScreen == null);
+        }
+        MenuItem nt = menu.findItem(R.id.new_tab_menu_id);
+        if (nt != null) {
+            nt.setVisible(mNavScreen == null);
+        }
+        MenuItem find = menu.findItem(R.id.find_menu_id);
+        if (find != null) {
+            find.setVisible(((tab != null) && !tab.isSnapshot()));
+        }
+        MenuItem abm = menu.findItem(R.id.add_bookmark_menu_id);
+        if (abm != null) {
+            abm.setVisible((tab != null) && !tab.isSnapshot());
+        }
+    }
+
+    @Override
     public boolean onOptionsItemSelected(MenuItem item) {
         if (mNavScreen != null) {
             hideNavScreen(false);
diff --git a/src/com/android/browser/UI.java b/src/com/android/browser/UI.java
index 2984d5c..bc4c0cf 100644
--- a/src/com/android/browser/UI.java
+++ b/src/com/android/browser/UI.java
@@ -99,6 +99,8 @@
 
     public boolean onPrepareOptionsMenu(Menu menu);
 
+    public void updateMenuState(Tab tab, Menu menu);
+
     public void onOptionsMenuOpened();
 
     public void onExtendedMenuOpened();
