diff --git a/src/com/android/browser/BrowserBookmarksPage.java b/src/com/android/browser/BrowserBookmarksPage.java
index a443090..6ab011b 100644
--- a/src/com/android/browser/BrowserBookmarksPage.java
+++ b/src/com/android/browser/BrowserBookmarksPage.java
@@ -257,9 +257,8 @@
         // bookmarks. Otherwise default to grid mode.
         BookmarkViewMode preference = BookmarkViewMode.NONE;
         if (mMostVisited) {
-            preference = BookmarkViewMode.values()[p.getInt(
-                    PREF_MOST_VISITED_VIEW_MODE,
-                    BookmarkViewMode.GRID.ordinal())];
+            // For the most visited page, only use list mode.
+            preference = BookmarkViewMode.LIST;
         } else {
             preference = BookmarkViewMode.values()[p.getInt(
                     PREF_BOOKMARK_VIEW_MODE, BookmarkViewMode.GRID.ordinal())];
@@ -479,12 +478,9 @@
     @Override
     public boolean onCreateOptionsMenu(Menu menu) {
         boolean result = super.onCreateOptionsMenu(menu);
-        if (!mCreateShortcut) {
+        if (!mCreateShortcut && !mMostVisited) {
             MenuInflater inflater = getMenuInflater();
             inflater.inflate(R.menu.bookmarks, menu);
-            // Most visited page does not have an option to bookmark the last
-            // viewed page.
-            menu.findItem(R.id.new_context_menu_id).setVisible(!mMostVisited);
             return true;
         }
         return result;
@@ -493,7 +489,8 @@
     @Override
     public boolean onPrepareOptionsMenu(Menu menu) {
         boolean result = super.onPrepareOptionsMenu(menu);
-        if (mCreateShortcut || mBookmarksAdapter.getCount() == 0) {
+        if (mCreateShortcut || mMostVisited
+                || mBookmarksAdapter.getCount() == 0) {
             // No need to show the menu if there are no items.
             return result;
         }
