diff --git a/src/com/android/browser/BaseUi.java b/src/com/android/browser/BaseUi.java
index 43bc7d6..1e0e183 100644
--- a/src/com/android/browser/BaseUi.java
+++ b/src/com/android/browser/BaseUi.java
@@ -17,6 +17,7 @@
 package com.android.browser;
 
 import com.android.browser.Tab.LockIcon;
+import com.android.internal.view.menu.MenuBuilder;
 
 import android.animation.ObjectAnimator;
 import android.app.Activity;
@@ -776,4 +777,10 @@
         }
     }
 
+    protected Menu getMenu() {
+        MenuBuilder menu = new MenuBuilder(mActivity);
+        mActivity.getMenuInflater().inflate(R.menu.browser, menu);
+        return menu;
+    }
+
 }
diff --git a/src/com/android/browser/NavScreen.java b/src/com/android/browser/NavScreen.java
index 8b897df..a1fa639 100644
--- a/src/com/android/browser/NavScreen.java
+++ b/src/com/android/browser/NavScreen.java
@@ -86,7 +86,10 @@
         requestLayout();
     }
 
-    protected void showMenu(Menu menu) {
+    protected void showMenu() {
+        Menu menu = mUi.getMenu();
+        menu.setGroupVisible(R.id.NAV_MENU, false);
+
         MenuAdapter menuAdapter = new MenuAdapter(mContext);
         menuAdapter.setMenu(menu);
         ListPopupWindow popup = new ListPopupWindow(mContext);
@@ -207,7 +210,7 @@
             mUi.hideNavScreen(true);
             mUiController.openTabToHomePage();
         } else if (mMore == v) {
-            mActivity.openOptionsMenu();
+            showMenu();
         } else if (mNewIncognito == v) {
             mUi.hideNavScreen(true);
             mUiController.openIncognitoTab();
diff --git a/src/com/android/browser/PhoneUi.java b/src/com/android/browser/PhoneUi.java
index 3415e39..f2ace49 100644
--- a/src/com/android/browser/PhoneUi.java
+++ b/src/com/android/browser/PhoneUi.java
@@ -284,16 +284,12 @@
 
     @Override
     public boolean onPrepareOptionsMenu(Menu menu) {
-        menu.setGroupVisible(R.id.NAV_MENU, false);
         if (mUseQuickControls) {
+            menu.setGroupVisible(R.id.NAV_MENU, false);
             mPieControl.onMenuOpened(menu);
             return false;
-        } else {
-            if (mNavScreen != null) {
-                mNavScreen.showMenu(menu);
-            }
-            return false;
         }
+        return true;
     }
 
     @Override
