diff --git a/src/com/android/browser/NavigationBarBase.java b/src/com/android/browser/NavigationBarBase.java
index 8d34f13..48e23bd 100644
--- a/src/com/android/browser/NavigationBarBase.java
+++ b/src/com/android/browser/NavigationBarBase.java
@@ -765,11 +765,11 @@
     @Override
     public void onStateChanged(int state) {
         mVoiceButton.setVisibility(View.GONE);
+        mClearButton.setVisibility(View.GONE);
         switch(state) {
             case STATE_NORMAL:
                 mFaviconTile.setVisibility(View.VISIBLE);
                 mMagnify.setVisibility(View.GONE);
-                mClearButton.setVisibility(View.GONE);
                 mMore.setVisibility(View.VISIBLE);
                 if (mUiController != null) {
                     Tab currentTab = mUiController.getCurrentTab();
@@ -785,20 +785,24 @@
                 break;
             case STATE_HIGHLIGHTED:
                 mFaviconTile.setVisibility(View.GONE);
-                mMagnify.setVisibility(View.GONE);
-                mClearButton.setVisibility(View.GONE);
+                mMagnify.setVisibility(View.VISIBLE);
+                mClearButton.setVisibility(View.VISIBLE);
                 mMore.setVisibility(View.GONE);
                 if (mUiController != null) {
                     mUiController.setWindowDimming(0.75f);
-                    if (mUiController.supportsVoice()) {
-                        mVoiceButton.setVisibility(View.VISIBLE);
-                    }
                 }
                 break;
             case STATE_EDITED:
+                if (TextUtils.isEmpty(mUrlInput.getText()) &&
+                        mUiController != null &&
+                        mUiController.supportsVoice()) {
+                    mVoiceButton.setVisibility(View.VISIBLE);
+                }
+                else {
+                    mClearButton.setVisibility(View.VISIBLE);
+                }
                 mFaviconTile.setVisibility(View.GONE);
                 mMagnify.setVisibility(View.VISIBLE);
-                mClearButton.setVisibility(View.VISIBLE);
                 mMore.setVisibility(View.GONE);
                 break;
         }
diff --git a/src/com/android/browser/NavigationBarPhone.java b/src/com/android/browser/NavigationBarPhone.java
index 5b2bb75..a94cabd 100644
--- a/src/com/android/browser/NavigationBarPhone.java
+++ b/src/com/android/browser/NavigationBarPhone.java
@@ -147,7 +147,6 @@
                 mUrlInput.selectAll();
             }
 
-            mStopButton.setVisibility(View.VISIBLE);
             mTabSwitcher.setVisibility(View.GONE);
             mTabText.setVisibility(View.GONE);
 
diff --git a/src/com/android/browser/UrlInputView.java b/src/com/android/browser/UrlInputView.java
index 738aec8..8a70b6d 100755
--- a/src/com/android/browser/UrlInputView.java
+++ b/src/com/android/browser/UrlInputView.java
@@ -333,7 +333,8 @@
 
     @Override
     public void onTextChanged(CharSequence s, int start, int before, int count) {
-        if (StateListener.STATE_HIGHLIGHTED == mState) {
+        if (StateListener.STATE_HIGHLIGHTED == mState ||
+            StateListener.STATE_EDITED == mState) {
             changeState(StateListener.STATE_EDITED);
         }
     }
