diff --git a/src/com/android/phone/CallFeaturesSetting.java b/src/com/android/phone/CallFeaturesSetting.java
index a267dae..65ca3e5 100644
--- a/src/com/android/phone/CallFeaturesSetting.java
+++ b/src/com/android/phone/CallFeaturesSetting.java
@@ -1056,21 +1056,16 @@
      * Update the voicemail number from what we've recorded on the sim.
      */
     private void updateVoiceNumberField() {
-        if (DBG) {
-            log("updateVoiceNumberField(). mSubMenuVoicemailSettings=" + mSubMenuVoicemailSettings);
-        }
-        if (mSubMenuVoicemailSettings == null) {
-            return;
-        }
+        if (DBG) log("updateVoiceNumberField()");
 
         mOldVmNumber = mPhone.getVoiceMailNumber();
-        if (mOldVmNumber == null) {
-            mOldVmNumber = "";
+        if (TextUtils.isEmpty(mOldVmNumber)) {
+            mSubMenuVoicemailSettings.setPhoneNumber("");
+            mSubMenuVoicemailSettings.setSummary(getString(R.string.voicemail_number_not_set));
+        } else {
+            mSubMenuVoicemailSettings.setPhoneNumber(mOldVmNumber);
+            mSubMenuVoicemailSettings.setSummary(mOldVmNumber);
         }
-        mSubMenuVoicemailSettings.setPhoneNumber(mOldVmNumber);
-        final String summary = (mOldVmNumber.length() > 0) ? mOldVmNumber :
-                getString(R.string.voicemail_number_not_set);
-        mSubMenuVoicemailSettings.setSummary(summary);
     }
 
     /*
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index f598daf..e3d1a08 100644
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -802,7 +802,7 @@
      */
     public boolean endCallForSubscriber(int subId) {
         enforceCallPermission();
-        return (Boolean) sendRequest(CMD_END_CALL, new Long(subId), null);
+        return (Boolean) sendRequest(CMD_END_CALL, new Integer(subId), null);
     }
 
     public void answerRingingCall() {
@@ -815,7 +815,7 @@
         // but that can probably wait till the big TelephonyManager API overhaul.
         // For now, protect this call with the MODIFY_PHONE_STATE permission.
         enforceModifyPermission();
-        sendRequest(CMD_ANSWER_RINGING_CALL, new Long(subId), null);
+        sendRequest(CMD_ANSWER_RINGING_CALL, new Integer(subId), null);
     }
 
     /**
