diff --git a/src/com/android/phone/TimeConsumingPreferenceActivity.java b/src/com/android/phone/TimeConsumingPreferenceActivity.java
index 08a5a95..05b86a5 100644
--- a/src/com/android/phone/TimeConsumingPreferenceActivity.java
+++ b/src/com/android/phone/TimeConsumingPreferenceActivity.java
@@ -50,6 +50,9 @@
     static final int RESPONSE_ERROR = 400;
     static final int RADIO_OFF_ERROR = 500;
     static final int FDN_CHECK_FAILURE = 600;
+    static final int STK_CC_SS_TO_DIAL_ERROR = 700;
+    static final int STK_CC_SS_TO_USSD_ERROR = 800;
+    static final int STK_CC_SS_TO_SS_ERROR = 900;
 
     private final ArrayList<String> mBusyList = new ArrayList<String>();
 
@@ -77,7 +80,8 @@
         }
 
         if (id == RESPONSE_ERROR || id == RADIO_OFF_ERROR || id == EXCEPTION_ERROR
-                || id == FDN_CHECK_FAILURE) {
+                || id == FDN_CHECK_FAILURE || id == STK_CC_SS_TO_DIAL_ERROR
+                || id == STK_CC_SS_TO_USSD_ERROR || id == STK_CC_SS_TO_SS_ERROR) {
             AlertDialog.Builder builder = new AlertDialog.Builder(this);
 
             int msgId;
@@ -97,6 +101,18 @@
                     msgId = R.string.fdn_check_failure;
                     builder.setPositiveButton(R.string.close_dialog, mDismiss);
                     break;
+                case STK_CC_SS_TO_DIAL_ERROR:
+                    msgId = R.string.stk_cc_ss_to_dial_error;
+                    builder.setPositiveButton(R.string.close_dialog, mDismiss);
+                    break;
+                case STK_CC_SS_TO_USSD_ERROR:
+                    msgId = R.string.stk_cc_ss_to_ussd_error;
+                    builder.setPositiveButton(R.string.close_dialog, mDismiss);
+                    break;
+                case STK_CC_SS_TO_SS_ERROR:
+                    msgId = R.string.stk_cc_ss_to_ss_error;
+                    builder.setPositiveButton(R.string.close_dialog, mDismiss);
+                    break;
                 case EXCEPTION_ERROR:
                 default:
                     msgId = R.string.exception_error;
diff --git a/src/com/android/services/telephony/DisconnectCauseUtil.java b/src/com/android/services/telephony/DisconnectCauseUtil.java
index 4a92847..81fc7aa 100644
--- a/src/com/android/services/telephony/DisconnectCauseUtil.java
+++ b/src/com/android/services/telephony/DisconnectCauseUtil.java
@@ -120,6 +120,9 @@
             case android.telephony.DisconnectCause.TIMED_OUT:
             case android.telephony.DisconnectCause.UNOBTAINABLE_NUMBER:
             case android.telephony.DisconnectCause.VOICEMAIL_NUMBER_MISSING:
+            case android.telephony.DisconnectCause.DIAL_MODIFIED_TO_USSD:
+            case android.telephony.DisconnectCause.DIAL_MODIFIED_TO_SS:
+            case android.telephony.DisconnectCause.DIAL_MODIFIED_TO_DIAL:
             case android.telephony.DisconnectCause.ERROR_UNSPECIFIED:
                 return DisconnectCause.ERROR;
 
@@ -251,6 +254,18 @@
                 resourceId = R.string.callFailed_dsac_restricted_normal;
                 break;
 
+            case android.telephony.DisconnectCause.DIAL_MODIFIED_TO_USSD:
+                resourceId = R.string.callFailed_dialToUssd;
+                break;
+
+            case android.telephony.DisconnectCause.DIAL_MODIFIED_TO_SS:
+                resourceId = R.string.callFailed_dialToSs;
+                break;
+
+            case android.telephony.DisconnectCause.DIAL_MODIFIED_TO_DIAL:
+                resourceId = R.string.callFailed_dialToDial;
+                break;
+
             case android.telephony.DisconnectCause.OUTGOING_FAILURE:
                 // We couldn't successfully place the call; there was some
                 // failure in the telephony layer.
