diff --git a/res/drawable-hdpi/app_web_browser_sm.png b/res/drawable-hdpi/app_web_browser_sm.png
index f1de0de..a3f75cc 100644
--- a/res/drawable-hdpi/app_web_browser_sm.png
+++ b/res/drawable-hdpi/app_web_browser_sm.png
Binary files differ
diff --git a/res/drawable-mdpi/app_web_browser_sm.png b/res/drawable-mdpi/app_web_browser_sm.png
index 696fd2f..6ac62eb 100644
--- a/res/drawable-mdpi/app_web_browser_sm.png
+++ b/res/drawable-mdpi/app_web_browser_sm.png
Binary files differ
diff --git a/res/drawable-xhdpi/app_web_browser_sm.png b/res/drawable-xhdpi/app_web_browser_sm.png
index 35d857b..501af7f 100644
--- a/res/drawable-xhdpi/app_web_browser_sm.png
+++ b/res/drawable-xhdpi/app_web_browser_sm.png
Binary files differ
diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java
index 686cfcd..0fc9b8a 100644
--- a/src/com/android/browser/Controller.java
+++ b/src/com/android/browser/Controller.java
@@ -2394,7 +2394,11 @@
      */
     @Override
     public void closeTab(Tab tab) {
-        removeTab(tab);
+        if (tab == mTabControl.getCurrentTab()) {
+            closeCurrentTab();
+        } else {
+            removeTab(tab);
+        }
     }
 
     // Called when loading from context menu or LOAD_URL message
diff --git a/src/com/android/browser/SnapshotByteArrayOutputStream.java b/src/com/android/browser/SnapshotByteArrayOutputStream.java
index bfd1a76..127eee8 100644
--- a/src/com/android/browser/SnapshotByteArrayOutputStream.java
+++ b/src/com/android/browser/SnapshotByteArrayOutputStream.java
@@ -21,8 +21,9 @@
 
 public class SnapshotByteArrayOutputStream extends OutputStream {
 
-    // Maximum size, just below CursorWindow's 2mb row limit
-    private static final int MAX_SIZE = 2000000;
+    // Maximum size, this needs to be small enough such that an entire row
+    // can fit in CursorWindow's 2MB limit
+    private static final int MAX_SIZE = 1700000;
     private ByteArrayOutputStream mStream;
 
     public SnapshotByteArrayOutputStream() {
diff --git a/src/com/android/browser/SnapshotTab.java b/src/com/android/browser/SnapshotTab.java
index cc6eeb7..d9c71f0 100644
--- a/src/com/android/browser/SnapshotTab.java
+++ b/src/com/android/browser/SnapshotTab.java
@@ -189,17 +189,16 @@
                     if (web != null) {
                         byte[] data = result.getBlob(4);
                         ByteArrayInputStream bis = new ByteArrayInputStream(data);
-                        try {
-                            GZIPInputStream stream = new GZIPInputStream(bis);
-                            web.loadViewState(stream);
-                        } catch (Exception e) {
-                            Log.w(LOGTAG, "Failed to load view state", e);
-                        }
+                        GZIPInputStream stream = new GZIPInputStream(bis);
+                        web.loadViewState(stream);
                     }
                     mTab.mBackgroundColor = result.getInt(5);
                     mTab.mDateCreated = result.getLong(6);
                     mTab.mWebViewController.onPageFinished(mTab);
                 }
+            } catch (Exception e) {
+                Log.w(LOGTAG, "Failed to load view state, closing tab", e);
+                mTab.mWebViewController.closeTab(mTab);
             } finally {
                 if (result != null) {
                     result.close();
