diff --git a/src/com/android/browser/NavScreen.java b/src/com/android/browser/NavScreen.java
index 42b35de..d734923 100644
--- a/src/com/android/browser/NavScreen.java
+++ b/src/com/android/browser/NavScreen.java
@@ -173,14 +173,8 @@
         if (tab != null) {
             mUiController.setBlockEvents(true);
             final int tix = mUi.mTabControl.getTabPosition(tab);
-            mScroller.setOnLayoutListener(new OnLayoutListener() {
-
-                @Override
-                public void onLayout(int l, int t, int r, int b) {
-                    mUi.hideNavScreen(tix, true);
-                    switchToTab(tab);
-                }
-            });
+            switchToTab(tab);
+            mUi.hideNavScreen(tix, true);
             mScroller.handleDataChanged(tix);
             mUiController.setBlockEvents(false);
         }
diff --git a/src/com/android/browser/PhoneUi.java b/src/com/android/browser/PhoneUi.java
index d83d81d..b5d0a38 100644
--- a/src/com/android/browser/PhoneUi.java
+++ b/src/com/android/browser/PhoneUi.java
@@ -386,7 +386,12 @@
         if (mAnimScreen == null) {
             mAnimScreen = new AnimScreen(mActivity);
         }
-        mAnimScreen.set(tab.getFullScreenshot());
+        int width = mContentView.getWidth();
+        int height = mContentView.getHeight();
+        Bitmap bm = tab.getFullScreenshot();
+        if (bm == null)
+            bm = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565);
+        mAnimScreen.set(bm);
         if (mAnimScreen.mMain.getParent() == null) {
             mCustomViewContainer.addView(mAnimScreen.mMain, COVER_SCREEN_PARAMS);
         }
@@ -403,8 +408,6 @@
             toTop = (tab.getWebView() != null) ? tab.getWebView().getVisibleTitleHeight() : 0;
         }
         int toRight = mContentView.getWidth();
-        int width = mContentView.getWidth();
-        int height = mContentView.getHeight();
         int fromLeft = tabview.getLeft() + target.getLeft() - mNavScreen.mScroller.getScrollX();
         int fromTop = tabview.getTop() + target.getTop() - mNavScreen.mScroller.getScrollY();
         int fromRight = fromLeft + target.getDrawable().getIntrinsicWidth();
