diff --git a/src/com/android/browser/PieControl.java b/src/com/android/browser/PieControl.java
index 210e9ea..6326f2e 100644
--- a/src/com/android/browser/PieControl.java
+++ b/src/com/android/browser/PieControl.java
@@ -70,7 +70,7 @@
             mPie.addItem(mRefresh);
             mBack = makeMenuView(R.drawable.ic_pie_back);
             mPie.addItem(mBack);
-            mUrl = makeMenuView(R.drawable.ic_pie_search);
+            mUrl = makeMenuView(R.drawable.ic_pie_web);
             mPie.addItem(mUrl);
             mBookmarks = makeMenuView(R.drawable.ic_pie_bookmarks);
             mPie.addItem(mBookmarks);
@@ -133,6 +133,7 @@
             mUiController.bookmarksOrHistoryPicker(false);
         } else if (mNewTab == v) {
             mUiController.openTabToHomePage();
+            mUi.showFakeTitleBarAndEdit();
         } else if (mClose == v) {
             mUiController.closeCurrentTab();
         } else {
diff --git a/src/com/android/browser/TabBar.java b/src/com/android/browser/TabBar.java
index 502512a..ba123d0 100644
--- a/src/com/android/browser/TabBar.java
+++ b/src/com/android/browser/TabBar.java
@@ -16,7 +16,6 @@
 
 package com.android.browser;
 
-import android.graphics.Matrix;
 import com.android.browser.ScrollWebView.ScrollListener;
 
 import android.app.Activity;
@@ -26,6 +25,7 @@
 import android.graphics.BitmapShader;
 import android.graphics.Canvas;
 import android.graphics.Color;
+import android.graphics.Matrix;
 import android.graphics.Paint;
 import android.graphics.Path;
 import android.graphics.Shader;
@@ -33,6 +33,7 @@
 import android.graphics.drawable.Drawable;
 import android.graphics.drawable.LayerDrawable;
 import android.graphics.drawable.PaintDrawable;
+import android.util.Log;
 import android.view.ContextMenu;
 import android.view.Gravity;
 import android.view.LayoutInflater;
@@ -140,6 +141,8 @@
 
     void setUseQuickControls(boolean useQuickControls) {
         mUseQuickControls = useQuickControls;
+        mNewTab.setVisibility(mUseQuickControls ? View.GONE
+                : View.VISIBLE);
     }
 
     int getTabCount() {
@@ -160,7 +163,9 @@
         super.onMeasure(hspec, vspec);
         int w = getMeasuredWidth();
         // adjust for new tab overlap
-        w -= mTabOverlap;
+        if (!mUseQuickControls) {
+            w -= mTabOverlap;
+        }
         setMeasuredDimension(w, getMeasuredHeight());
     }
 
@@ -188,8 +193,14 @@
         if (mNewTab == view) {
             mUiController.openTabToHomePage();
         } else if (mTabs.getSelectedTab() == view) {
-            if (mUseQuickControls) return;
-            if (mUi.isFakeTitleBarShowing() && !isLoading()) {
+            if (mUseQuickControls) {
+                if (mUi.isFakeTitleBarShowing() && !isLoading()) {
+                    mUi.hideFakeTitleBar();
+                } else {
+                    mUi.stopWebViewScrolling();
+                    mUi.showFakeTitleBarAndEdit();
+                }
+            } else if (mUi.isFakeTitleBarShowing() && !isLoading()) {
                 mUi.hideFakeTitleBar();
             } else {
                 showUrlBar();
diff --git a/src/com/android/browser/XLargeUi.java b/src/com/android/browser/XLargeUi.java
index ac121cc..1e607a7 100644
--- a/src/com/android/browser/XLargeUi.java
+++ b/src/com/android/browser/XLargeUi.java
@@ -276,6 +276,7 @@
     @Override
     protected void hideFakeTitleBar() {
         if (isFakeTitleBarShowing()) {
+            mFakeTitleBar.setUrlMode(false);
             mContentView.removeView(mFakeTitleBar);
             mTabBar.onHideTitleBar();
         }
