diff --git a/res/layout/bookmarkthumbnailwidget.xml b/res/layout/bookmarkthumbnailwidget.xml
index 3d7f7d0..967e4c1 100644
--- a/res/layout/bookmarkthumbnailwidget.xml
+++ b/res/layout/bookmarkthumbnailwidget.xml
@@ -25,7 +25,8 @@
         android:id="@+id/bookmarks_list"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:numColumns="2"
+        android:numColumns="auto_fit"
+        android:columnWidth="@dimen/widgetColumnWidth"
         android:paddingTop="6dip"
         android:paddingRight="7dip"
         android:paddingLeft="7dip"
diff --git a/res/layout/browser_add_bookmark_content.xml b/res/layout/browser_add_bookmark_content.xml
index 6287ef8..03936c3 100644
--- a/res/layout/browser_add_bookmark_content.xml
+++ b/res/layout/browser_add_bookmark_content.xml
@@ -197,13 +197,6 @@
         android:paddingTop="4dip"
         android:paddingLeft="2dip"
         android:paddingRight="2dip" >
-        <Button android:id="@+id/OK"
-            android:text="@string/save"
-            android:layout_width="0dip"
-            android:layout_gravity="left"
-            android:layout_weight="1"
-            android:maxLines="2"
-            android:layout_height="wrap_content" />
         <Button android:id="@+id/cancel"
             android:text="@string/do_not_save"
             android:layout_width="0dip"
@@ -211,6 +204,13 @@
             android:layout_weight="1"
             android:maxLines="2"
             android:layout_height="wrap_content" />
+        <Button android:id="@+id/OK"
+            android:text="@string/save"
+            android:layout_width="0dip"
+            android:layout_gravity="left"
+            android:layout_weight="1"
+            android:maxLines="2"
+            android:layout_height="wrap_content" />
     </LinearLayout>
 
 </merge>
diff --git a/res/values-sw600dp-port/dimensions.xml b/res/values-sw600dp-port/dimensions.xml
index 682bbaf..c5771f5 100644
--- a/res/values-sw600dp-port/dimensions.xml
+++ b/res/values-sw600dp-port/dimensions.xml
@@ -11,8 +11,7 @@
     License.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <dimen name="widgetColumnWidth">110dip</dimen>
     <dimen name="widgetThumbnailHeight">84dip</dimen>
-    <dimen name="widgetHorizontalSpacing">6dip</dimen>
-    <dimen name="widgetVerticalSpacing">6dip</dimen>
     <dimen name="combo_horizontalSpacing">4dip</dimen>
 </resources>
diff --git a/res/values-sw600dp/dimensions.xml b/res/values-sw600dp/dimensions.xml
index 78956d6..1dfb896 100644
--- a/res/values-sw600dp/dimensions.xml
+++ b/res/values-sw600dp/dimensions.xml
@@ -14,8 +14,7 @@
     <dimen name="bookmarkThumbnailWidth">180dip</dimen>
     <dimen name="bookmarkThumbnailHeight">120dip</dimen>
     <dimen name="widgetThumbnailHeight">104dip</dimen>
-    <dimen name="widgetHorizontalSpacing">6dip</dimen>
-    <dimen name="widgetVerticalSpacing">6dip</dimen>
+    <dimen name="widgetColumnWidth">130dip</dimen>
     <dimen name="favicon_padded_size">28dip</dimen>
     <dimen name="add_bookmark_width">500dip</dimen>
     <!-- For the most visited page -->
diff --git a/res/values/dimensions.xml b/res/values/dimensions.xml
index 279c53c..8e60355 100644
--- a/res/values/dimensions.xml
+++ b/res/values/dimensions.xml
@@ -47,9 +47,10 @@
     <dimen name="list_favicon_padding">5dip</dimen>
     <dimen name="list_favicon_corner_radius">3dip</dimen>
     <dimen name="tab_favicon_corner_radius">2dip</dimen>
-    <dimen name="widgetThumbnailHeight">104dip</dimen>
-    <dimen name="widgetHorizontalSpacing">14dip</dimen>
-    <dimen name="widgetVerticalSpacing">12dip</dimen>
+    <dimen name="widgetThumbnailHeight">94dip</dimen>
+    <dimen name="widgetHorizontalSpacing">6dip</dimen>
+    <dimen name="widgetVerticalSpacing">6dip</dimen>
+    <dimen name="widgetColumnWidth">90dip</dimen>
     <!-- For the combined Bookmarks History view -->
     <dimen name="combo_paddingTop">0dip</dimen>
     <dimen name="combo_horizontalSpacing">6dip</dimen>
diff --git a/res/xml-sw600dp/bookmarkthumbnailwidget_info.xml b/res/xml-sw600dp/bookmarkthumbnailwidget_info.xml
new file mode 100644
index 0000000..99afda7
--- /dev/null
+++ b/res/xml-sw600dp/bookmarkthumbnailwidget_info.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2011 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<!-- 3x3 Widget displaying the user's bookmarks as a list with favicons. -->
+<appwidget-provider
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:minWidth="219dip"
+    android:minHeight="219dip"
+    android:minResizeHeight="72dip"
+    android:minResizeWidth="146dip"
+    android:updatePeriodMillis="0"
+    android:previewImage="@drawable/browser_widget_preview"
+    android:initialLayout="@layout/bookmarkthumbnailwidget"
+    android:resizeMode="vertical|horizontal"
+    android:configure="com.android.browser.widget.BookmarkWidgetConfigure">
+</appwidget-provider>
diff --git a/res/xml/bookmarkthumbnailwidget_info.xml b/res/xml/bookmarkthumbnailwidget_info.xml
index e98e3f7..bf2e612 100644
--- a/res/xml/bookmarkthumbnailwidget_info.xml
+++ b/res/xml/bookmarkthumbnailwidget_info.xml
@@ -14,14 +14,16 @@
      limitations under the License.
 -->
 
-<!-- 3x3 Widget displaying the user's bookmarks as a list with favicons. -->
+<!-- 3x2 Widget displaying the user's bookmarks as a list with favicons. -->
 <appwidget-provider
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:minWidth="219dip"
-    android:minHeight="219dip"
+    android:minHeight="146dip"
+    android:minResizeHeight="72dip"
+    android:minResizeWidth="146dip"
     android:updatePeriodMillis="0"
     android:previewImage="@drawable/browser_widget_preview"
     android:initialLayout="@layout/bookmarkthumbnailwidget"
-    android:resizeMode="vertical"
+    android:resizeMode="vertical|horizontal"
     android:configure="com.android.browser.widget.BookmarkWidgetConfigure">
 </appwidget-provider>
diff --git a/src/com/android/browser/SnapshotTab.java b/src/com/android/browser/SnapshotTab.java
index bb4c240..cc6eeb7 100644
--- a/src/com/android/browser/SnapshotTab.java
+++ b/src/com/android/browser/SnapshotTab.java
@@ -81,7 +81,11 @@
 
     @Override
     void addChildTab(Tab child) {
-        throw new IllegalStateException("Snapshot tabs cannot have child tabs!");
+        if (mIsLive) {
+            super.addChildTab(child);
+        } else {
+            throw new IllegalStateException("Snapshot tabs cannot have child tabs!");
+        }
     }
 
     @Override
@@ -95,11 +99,17 @@
 
     @Override
     public ContentValues createSnapshotValues() {
+        if (mIsLive) {
+            return super.createSnapshotValues();
+        }
         return null;
     }
 
     @Override
     public Bundle saveState() {
+        if (mIsLive) {
+            return super.saveState();
+        }
         return null;
     }
 
@@ -202,12 +212,8 @@
 
     @Override
     protected void persistThumbnail() {
-        // Nope
+        if (mIsLive) {
+            super.persistThumbnail();
+        }
     }
-
-    @Override
-    protected void deleteThumbnail() {
-        // Nope
-    }
-
 }
