diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java
index d9dc590..37d4a4e 100644
--- a/src/com/android/settings/SettingsActivity.java
+++ b/src/com/android/settings/SettingsActivity.java
@@ -24,6 +24,7 @@
 
 import android.app.ActionBar;
 import android.app.ActivityManager;
+import android.content.ActivityNotFoundException;
 import android.content.BroadcastReceiver;
 import android.content.ComponentName;
 import android.content.Context;
@@ -253,8 +254,7 @@
         getMetaData();
         final Intent intent = getIntent();
 
-        if (shouldShowTwoPaneDeepLink(intent)) {
-            launchHomepageForTwoPaneDeepLink(intent);
+        if (shouldShowTwoPaneDeepLink(intent) && tryStartTwoPaneDeepLink(intent)) {
             finishAndRemoveTask();
             super.onCreate(savedState);
             return;
@@ -412,7 +412,7 @@
         return trampolineIntent;
     }
 
-    private void launchHomepageForTwoPaneDeepLink(Intent intent) {
+    private boolean tryStartTwoPaneDeepLink(Intent intent) {
         final Intent trampolineIntent;
         if (intent.getBooleanExtra(EXTRA_IS_FROM_SLICE, false)) {
             // Get menu key for slice deep link case.
@@ -426,7 +426,14 @@
         } else {
             trampolineIntent = getTrampolineIntent(intent, mHighlightMenuKey);
         }
-        startActivity(trampolineIntent);
+
+        try {
+            startActivity(trampolineIntent);
+        } catch (ActivityNotFoundException e) {
+            Log.e(LOG_TAG, "Deep link homepage is not available to show 2-pane UI");
+            return false;
+        }
+        return true;
     }
 
     private boolean shouldShowTwoPaneDeepLink(Intent intent) {
