diff --git a/src/com/android/settings/dashboard/SupportItemAdapter.java b/src/com/android/settings/dashboard/SupportItemAdapter.java
index 4ee28c6..b5c130c 100644
--- a/src/com/android/settings/dashboard/SupportItemAdapter.java
+++ b/src/com/android/settings/dashboard/SupportItemAdapter.java
@@ -450,9 +450,15 @@
                         final SupportPhone phone = mSupportFeatureProvider
                                 .getSupportPhones(mSelectedCountry, true /* isTollFree */);
                         if (phone != null) {
-                            MetricsLogger.action(mActivity,
-                                    MetricsProto.MetricsEvent.ACTION_SUPPORT_DAIL_TOLLFREE);
-                            mActivity.startActivity(phone.getDialIntent());
+                            final Intent intent = phone.getDialIntent();
+                            final boolean canDial = !mActivity.getPackageManager()
+                                    .queryIntentActivities(intent, 0)
+                                    .isEmpty();
+                            if (canDial) {
+                                MetricsLogger.action(mActivity,
+                                        MetricsProto.MetricsEvent.ACTION_SUPPORT_DAIL_TOLLFREE);
+                                mActivity.startActivity(intent);
+                            }
                         }
                         break;
                     }
diff --git a/src/com/android/settings/support/SupportPhoneDialogFragment.java b/src/com/android/settings/support/SupportPhoneDialogFragment.java
index 77eb225..4dde547 100644
--- a/src/com/android/settings/support/SupportPhoneDialogFragment.java
+++ b/src/com/android/settings/support/SupportPhoneDialogFragment.java
@@ -15,9 +15,11 @@
  */
 package com.android.settings.support;
 
+import android.app.Activity;
 import android.app.AlertDialog;
 import android.app.Dialog;
 import android.app.DialogFragment;
+import android.content.Intent;
 import android.os.Bundle;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -68,9 +70,16 @@
     @Override
     public void onClick(View v) {
         final SupportPhone phone = getArguments().getParcelable(EXTRA_PHONE);
-        MetricsLogger.action(getActivity(),
-                MetricsProto.MetricsEvent.ACTION_SUPPORT_DIAL_TOLLED);
-        getActivity().startActivity(phone.getDialIntent());
+        final Activity activity = getActivity();
+        final Intent intent = phone.getDialIntent();
+        final boolean canDial = !activity.getPackageManager()
+                .queryIntentActivities(intent, 0)
+                .isEmpty();
+        if (canDial) {
+            MetricsLogger.action(getActivity(),
+                    MetricsProto.MetricsEvent.ACTION_SUPPORT_DIAL_TOLLED);
+            getActivity().startActivity(intent);
+        }
         dismiss();
     }
 }
