diff --git a/res/menu/dialtacts_options.xml b/res/menu/dialtacts_options.xml
index cc5e386..8a9e25f 100644
--- a/res/menu/dialtacts_options.xml
+++ b/res/menu/dialtacts_options.xml
@@ -30,6 +30,6 @@
         android:title="@string/menu_newContact"/>
     <item
         android:id="@+id/menu_call_settings"
-        android:title="@string/dialer_settings_label"
-        android:orderInCategory="2" />
+        android:title="@string/dialer_settings_label" />
+
 </menu>
diff --git a/src/com/android/dialer/DialtactsActivity.java b/src/com/android/dialer/DialtactsActivity.java
index 61aeed5..787b6fa 100644
--- a/src/com/android/dialer/DialtactsActivity.java
+++ b/src/com/android/dialer/DialtactsActivity.java
@@ -238,7 +238,7 @@
      */
     private String mVoiceSearchQuery;
 
-    private class OptionsPopupMenu extends PopupMenu {
+    protected class OptionsPopupMenu extends PopupMenu {
         public OptionsPopupMenu(Context context, View anchor) {
             super(context, anchor, Gravity.END);
         }
@@ -808,7 +808,7 @@
         }
     }
 
-    private OptionsPopupMenu buildOptionsMenu(View invoker) {
+    protected OptionsPopupMenu buildOptionsMenu(View invoker) {
         final OptionsPopupMenu popupMenu = new OptionsPopupMenu(this, invoker);
         popupMenu.inflate(R.menu.dialtacts_options);
         final Menu menu = popupMenu.getMenu();
diff --git a/src/com/android/dialer/SpecialCharSequenceMgr.java b/src/com/android/dialer/SpecialCharSequenceMgr.java
index f466c41..46c6de6 100644
--- a/src/com/android/dialer/SpecialCharSequenceMgr.java
+++ b/src/com/android/dialer/SpecialCharSequenceMgr.java
@@ -33,6 +33,7 @@
 import android.telecom.TelecomManager;
 import android.telephony.PhoneNumberUtils;
 import android.telephony.TelephonyManager;
+import android.text.TextUtils;
 import android.util.Log;
 import android.view.WindowManager;
 import android.widget.EditText;
@@ -310,13 +311,16 @@
 
             List<String> deviceIds = new ArrayList<String>();
             for (int slot = 0; slot < telephonyManager.getPhoneCount(); slot++) {
-                deviceIds.add(telephonyManager.getDeviceId(slot));
+                String deviceId = telephonyManager.getDeviceId(slot);
+                if (!TextUtils.isEmpty(deviceId)) {
+                    deviceIds.add(deviceId);
+                }
             }
 
             AlertDialog alert = new AlertDialog.Builder(context)
                     .setTitle(labelResId)
                     .setItems(deviceIds.toArray(new String[deviceIds.size()]), null)
-                    .setPositiveButton(R.string.ok, null)
+                    .setPositiveButton(android.R.string.ok, null)
                     .setCancelable(false)
                     .show();
             return true;
diff --git a/src/com/android/dialer/list/SearchFragment.java b/src/com/android/dialer/list/SearchFragment.java
index 24ddc73..000e139 100644
--- a/src/com/android/dialer/list/SearchFragment.java
+++ b/src/com/android/dialer/list/SearchFragment.java
@@ -22,6 +22,7 @@
 import android.os.Bundle;
 import android.provider.ContactsContract;
 import android.text.TextUtils;
+import android.util.Log;
 import android.view.View;
 import android.view.animation.Interpolator;
 import android.widget.AbsListView;
@@ -40,6 +41,7 @@
 import com.android.phone.common.animation.AnimUtils;
 
 public class SearchFragment extends PhoneNumberPickerFragment {
+    private static final String TAG  = SearchFragment.class.getSimpleName();
     private static final String SMS_URI_PREFIX = "sms:";
 
     private OnListFragmentScrolledListener mActivityScrollListener;
@@ -156,6 +158,7 @@
         final Intent intent;
         final String number;
 
+        Log.i(TAG, "onItemClick: shortcutType=" + shortcutType);
         switch (shortcutType) {
             case DialerPhoneNumberListAdapter.SHORTCUT_INVALID:
                 super.onItemClick(position, id);
