diff --git a/src/com/android/browser/BrowserActivity.java b/src/com/android/browser/BrowserActivity.java
index c0a91ad..531a1c7 100644
--- a/src/com/android/browser/BrowserActivity.java
+++ b/src/com/android/browser/BrowserActivity.java
@@ -65,6 +65,8 @@
 
     private Handler mHandler = new Handler();
     private final Locale mCurrentLocale = Locale.getDefault();
+    public static boolean killOnExitDialog = false;
+
 
     private UiController mUiController;
     private Handler mHandlerEx = new Handler();
@@ -304,8 +306,8 @@
             mEngineInitializer.onActivityDestroy();
         mController.onDestroy();
         mController = NullController.INSTANCE;
-        if (!Locale.getDefault().equals(mCurrentLocale)) {
-            Log.e(LOGTAG,"Force Killing Browser on locale change");
+        if (!Locale.getDefault().equals(mCurrentLocale) || killOnExitDialog) {
+            Log.i(LOGTAG,"Force Killing Browser");
             Process.killProcess(Process.myPid());
         }
 
diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java
index 1138700..f6e8cbf 100644
--- a/src/com/android/browser/Controller.java
+++ b/src/com/android/browser/Controller.java
@@ -2370,6 +2370,7 @@
     }
 
     private void showExitDialog(final Activity activity) {
+        BrowserActivity.killOnExitDialog = false;
         new AlertDialog.Builder(activity)
                 .setTitle(R.string.exit_browser_title)
                 /* disabled, was worrying people: .setIcon(android.R.drawable.ic_dialog_alert) */
@@ -2382,15 +2383,9 @@
                 })
                 .setPositiveButton(R.string.exit_quit, new DialogInterface.OnClickListener() {
                     public void onClick(DialogInterface dialog, int which) {
+                        mCrashRecoveryHandler.clearState(true);
+                        BrowserActivity.killOnExitDialog = true;
                         activity.finish();
-                        mHandler.postDelayed(new Runnable() {
-                            @Override
-                            public void run() {
-                                mCrashRecoveryHandler.clearState(true);
-                                int pid = android.os.Process.myPid();
-                                android.os.Process.killProcess(pid);
-                            }
-                        }, 300);
                         dialog.dismiss();
                     }
                 })
