diff --git a/src/com/android/browser/BaseUi.java b/src/com/android/browser/BaseUi.java
index f7bd2fb..f5ccb42 100644
--- a/src/com/android/browser/BaseUi.java
+++ b/src/com/android/browser/BaseUi.java
@@ -32,6 +32,7 @@
 import android.os.Handler;
 import android.os.Message;
 import android.text.TextUtils;
+import android.view.ActionMode;
 import android.view.Gravity;
 import android.view.LayoutInflater;
 import android.view.Menu;
@@ -635,10 +636,6 @@
         }
     }
 
-    @Override
-    public void onActionModeFinished(boolean inLoad) {
-    }
-
     // active tabs page
 
     public void showActiveTabsPage() {
@@ -873,4 +870,17 @@
     protected UiController getUiController() {
         return mUiController;
     }
+
+    @Override
+    public void onActionModeStarted(ActionMode mode) {
+        int fixedTbarHeight = mTitleBar.isFixed() ? mTitleBar.calculateEmbeddedHeight() : 0;
+        mFixedTitlebarContainer.setY(fixedTbarHeight);
+        setContentViewMarginTop(fixedTbarHeight);
+    }
+
+    @Override
+    public void onActionModeFinished(boolean inLoad) {
+        mFixedTitlebarContainer.setY(0);
+        setContentViewMarginTop(0);
+    }
 }
diff --git a/src/com/android/browser/PhoneUi.java b/src/com/android/browser/PhoneUi.java
index 01488e1..5aefc92 100644
--- a/src/com/android/browser/PhoneUi.java
+++ b/src/com/android/browser/PhoneUi.java
@@ -234,16 +234,15 @@
 
     @Override
     public void onActionModeStarted(ActionMode mode) {
+        super.onActionModeStarted(mode);
         if (!isEditingUrl()) {
             hideTitleBar();
-        } else {
-            mTitleBar.animate().translationY(mActionBarHeight);
         }
     }
 
     @Override
     public void onActionModeFinished(boolean inLoad) {
-        mTitleBar.animate().translationY(0);
+        super.onActionModeFinished(inLoad);
         if (inLoad) {
             if (mUseQuickControls) {
                 mTitleBar.setShowProgressOnly(true);
diff --git a/src/com/android/browser/TitleBar.java b/src/com/android/browser/TitleBar.java
index e33a05c..1f9ec23 100644
--- a/src/com/android/browser/TitleBar.java
+++ b/src/com/android/browser/TitleBar.java
@@ -115,7 +115,8 @@
         super.onMeasure(widthMeasureSpec, heightMeasureSpec);
         if (mIsFixedTitleBar) {
             int margin = getMeasuredHeight() - calculateEmbeddedHeight();
-            mBaseUi.setContentViewMarginTop(-margin);
+            if (!isEditingUrl())
+                mBaseUi.setContentViewMarginTop(-margin);
         } else {
             mBaseUi.setContentViewMarginTop(0);
         }
