diff --git a/res/menu/call_log_options.xml b/res/menu/call_log_options.xml
index c62be77..c75c856 100644
--- a/res/menu/call_log_options.xml
+++ b/res/menu/call_log_options.xml
@@ -29,10 +29,4 @@
         android:id="@+id/show_all_calls"
         android:title="@string/menu_show_all_calls"
         android:showAsAction="withText" />
-
-    <item
-        android:id="@+id/menu_call_settings_call_log"
-        android:title="@string/call_settings"
-        android:icon="@drawable/ic_menu_settings_holo_light"
-        android:showAsAction="withText" />
 </menu>
diff --git a/res/menu/dialpad_options.xml b/res/menu/dialpad_options.xml
index 4dc62a8..77da9cb 100644
--- a/res/menu/dialpad_options.xml
+++ b/res/menu/dialpad_options.xml
@@ -30,10 +30,4 @@
         android:icon="@drawable/ic_menu_wait"
         android:title="@string/add_wait"
         android:showAsAction="withText" />
-
-    <item
-        android:id="@+id/menu_call_settings_dialpad"
-        android:title="@string/call_settings"
-        android:icon="@drawable/ic_menu_settings_holo_light"
-        android:showAsAction="withText" />
 </menu>
diff --git a/res/menu/dialtacts_options.xml b/res/menu/dialtacts_options.xml
index 99f87ff..cc9543a 100644
--- a/res/menu/dialtacts_options.xml
+++ b/res/menu/dialtacts_options.xml
@@ -20,6 +20,12 @@
         android:showAsAction="always" />
 
     <item
+        android:id="@+id/menu_call_settings"
+        android:title="@string/call_settings"
+        android:icon="@drawable/ic_menu_settings_holo_light"
+        android:showAsAction="withText" />
+
+    <item
         android:id="@+id/filter_option"
         android:title="@string/menu_contacts_filter"
         android:showAsAction="withText" />
diff --git a/src/com/android/contacts/activities/DialtactsActivity.java b/src/com/android/contacts/activities/DialtactsActivity.java
index cfca831..d0acc6b 100644
--- a/src/com/android/contacts/activities/DialtactsActivity.java
+++ b/src/com/android/contacts/activities/DialtactsActivity.java
@@ -644,19 +644,24 @@
     public boolean onPrepareOptionsMenu(Menu menu) {
         final MenuItem searchMenuItem = menu.findItem(R.id.search_on_action_bar);
         final MenuItem filterOptionMenuItem = menu.findItem(R.id.filter_option);
+        final MenuItem callSettingsMenuItem = menu.findItem(R.id.menu_call_settings);
         Tab tab = getActionBar().getSelectedTab();
         if (mInSearchUi) {
             searchMenuItem.setVisible(false);
             filterOptionMenuItem.setVisible(true);
             filterOptionMenuItem.setOnMenuItemClickListener(
                     mFilterOptionsMenuItemClickListener);
-        } else if (tab == null || tab.getPosition() == TAB_INDEX_DIALER) {
-            searchMenuItem.setVisible(false);
-            filterOptionMenuItem.setVisible(false);
+            callSettingsMenuItem.setVisible(false);
         } else {
+            if (tab != null && tab.getPosition() == TAB_INDEX_DIALER) {
+                searchMenuItem.setVisible(false);
+            } else {
+                searchMenuItem.setVisible(true);
+                searchMenuItem.setOnMenuItemClickListener(mSearchMenuItemClickListener);
+            }
             filterOptionMenuItem.setVisible(false);
-            searchMenuItem.setVisible(true);
-            searchMenuItem.setOnMenuItemClickListener(mSearchMenuItemClickListener);
+            callSettingsMenuItem.setVisible(true);
+            callSettingsMenuItem.setIntent(DialtactsActivity.getCallSettingsIntent());
         }
 
         return true;
diff --git a/src/com/android/contacts/calllog/CallLogFragment.java b/src/com/android/contacts/calllog/CallLogFragment.java
index a40379d..215fd7b 100644
--- a/src/com/android/contacts/calllog/CallLogFragment.java
+++ b/src/com/android/contacts/calllog/CallLogFragment.java
@@ -220,8 +220,6 @@
     @Override
     public void onPrepareOptionsMenu(Menu menu) {
         if (mShowOptionsMenu) {
-            menu.findItem(R.id.menu_call_settings_call_log)
-                .setIntent(DialtactsActivity.getCallSettingsIntent());
             menu.findItem(R.id.show_voicemails_only).setVisible(!mShowingVoicemailOnly);
             menu.findItem(R.id.show_all_calls).setVisible(mShowingVoicemailOnly);
         }
diff --git a/src/com/android/contacts/dialpad/DialpadFragment.java b/src/com/android/contacts/dialpad/DialpadFragment.java
index a5db5ce..377a595 100644
--- a/src/com/android/contacts/dialpad/DialpadFragment.java
+++ b/src/com/android/contacts/dialpad/DialpadFragment.java
@@ -571,14 +571,10 @@
     }
 
     private void setupMenuItems(Menu menu) {
-        final MenuItem callSettingsMenuItem = menu.findItem(R.id.menu_call_settings_dialpad);
         final MenuItem addToContactMenuItem = menu.findItem(R.id.menu_add_contacts);
         final MenuItem twoSecPauseMenuItem = menu.findItem(R.id.menu_2s_pause);
         final MenuItem waitMenuItem = menu.findItem(R.id.menu_add_wait);
 
-        callSettingsMenuItem.setVisible(true);
-        callSettingsMenuItem.setIntent(DialtactsActivity.getCallSettingsIntent());
-
         // We show "add to contacts", "2sec pause", and "add wait" menus only when the user is
         // seeing usual dialpads and has typed at least one digit.
         // We never show a menu if the "choose dialpad" UI is up.
