diff --git a/src/com/android/browser/DownloadHandler.java b/src/com/android/browser/DownloadHandler.java
index f42ee76..ab24b76 100644
--- a/src/com/android/browser/DownloadHandler.java
+++ b/src/com/android/browser/DownloadHandler.java
@@ -112,7 +112,11 @@
                 .getSystemService(Context.DOWNLOAD_SERVICE);
         new Thread("Browser download") {
             public void run() {
-                manager.enqueue(request);
+                try {
+                    manager.enqueue(request);
+                } catch (Exception e) {
+                     Log.w("DLHandler", "Could not enqueue the download", e);
+                }
             }
         }.start();
         showStartDownloadToast(activity, privateBrowsing);
diff --git a/src/com/android/browser/UrlHandler.java b/src/com/android/browser/UrlHandler.java
index a3936b4..37480af 100755
--- a/src/com/android/browser/UrlHandler.java
+++ b/src/com/android/browser/UrlHandler.java
@@ -188,16 +188,25 @@
       if (mActivity.getPackageManager().resolveActivity(intent, 0) == null) {
           String packagename = intent.getPackage();
           if (packagename != null) {
-              intent = new Intent(Intent.ACTION_VIEW, Uri
-                      .parse("market://search?q=pname:" + packagename));
-              intent.addCategory(Intent.CATEGORY_BROWSABLE);
-              mActivity.startActivity(intent);
-              // before leaving BrowserActivity, close the empty child tab.
-              // If a new tab is created through JavaScript open to load this
-              // url, we would like to close it as we will load this url in a
-              // different Activity.
-              mController.closeEmptyTab();
-              return true;
+              try {
+                intent = new Intent(Intent.ACTION_VIEW, Uri
+                        .parse("market://search?q=pname:" + packagename));
+                intent.addCategory(Intent.CATEGORY_BROWSABLE);
+                mActivity.startActivity(intent);
+                // before leaving BrowserActivity, close the empty child tab.
+                // If a new tab is created through JavaScript open to load this
+                // url, we would like to close it as we will load this url in a
+                // different Activity.
+                mController.closeEmptyTab();
+                return true;
+              } catch (ActivityNotFoundException e) {
+                Log.w(TAG, "Play store not found while searching for : " + packagename);
+                CharSequence alert = mActivity.getResources().getString(
+                    R.string.msg_no_google_play);
+                Toast t = Toast.makeText(mActivity , alert, Toast.LENGTH_SHORT);
+                t.show();
+                return false;
+              }
           } else {
               return false;
           }
