diff --git a/src/com/android/browser/UrlBarAutoShowManager.java b/src/com/android/browser/UrlBarAutoShowManager.java
index f1bbe7f..294115e 100644
--- a/src/com/android/browser/UrlBarAutoShowManager.java
+++ b/src/com/android/browser/UrlBarAutoShowManager.java
@@ -46,6 +46,7 @@
     private boolean mHasTriggered;
     private long mLastScrollTime;
     private long mTriggeredTime;
+    private boolean mIsScrolling;
 
     public UrlBarAutoShowManager(BaseUi ui) {
         mUi = ui;
@@ -71,6 +72,7 @@
     public void onScrollChanged(int l, int t, int oldl, int oldt) {
         mLastScrollTime = SystemClock.uptimeMillis();
         if (t != oldt) {
+            mIsScrolling = true;
             if (t != 0) {
                 // If it is showing, extend it
                 if (mUi.isTitleBarShowing()) {
@@ -88,6 +90,7 @@
     void stopTracking() {
         if (mIsTracking) {
             mIsTracking = false;
+            mIsScrolling = false;
             if (mUi.isTitleBarShowing()) {
                 mUi.showTitleBarForDuration();
             }
@@ -124,7 +127,8 @@
                     float angle = (float) Math.atan2(ady, adx);
                     if (dy > mSlop && angle > V_TRIGGER_ANGLE
                             && !mUi.isTitleBarShowing()
-                            && web.getVisibleTitleHeight() == 0) {
+                            && (web.getVisibleTitleHeight() == 0
+                            || (!mIsScrolling && web.getScrollY() > 0))) {
                         mTriggeredTime = SystemClock.uptimeMillis();
                         mUi.showTitleBar();
                     }
