diff --git a/src/com/android/browser/BaseUi.java b/src/com/android/browser/BaseUi.java
index 6f87463..80f4de8 100644
--- a/src/com/android/browser/BaseUi.java
+++ b/src/com/android/browser/BaseUi.java
@@ -157,6 +157,9 @@
 
     public void onResume() {
         mActivityPaused = false;
+        // check if we exited without setting active tab
+        // b: 5188145
+        setActiveTab(mTabControl.getCurrentTab());
     }
 
     protected boolean isActivityPaused() {
diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java
index 3093085..386c483 100644
--- a/src/com/android/browser/Controller.java
+++ b/src/com/android/browser/Controller.java
@@ -2291,6 +2291,10 @@
 
     @Override
     public void closeCurrentTab() {
+        closeCurrentTab(false);
+    }
+
+    protected void closeCurrentTab(boolean andQuit) {
         if (mTabControl.getTabCount() == 1) {
             mCrashRecoveryHandler.clearState();
             mTabControl.removeTab(getCurrentTab());
@@ -2306,7 +2310,10 @@
                 newTab = mTabControl.getTab(pos - 1);
             }
         }
-        if (switchToTab(newTab)) {
+        if (andQuit) {
+            mTabControl.setCurrentTab(newTab);
+            closeTab(current);
+        } else if (switchToTab(newTab)) {
             // Close window
             closeTab(current);
         }
@@ -2406,7 +2413,7 @@
                 closeTab(current);
             } else {
                 if ((current.getAppId() != null) || current.closeOnBack()) {
-                    closeCurrentTab();
+                    closeCurrentTab(true);
                 }
                 /*
                  * Instead of finishing the activity, simply push this to the back
