diff --git a/AndroidManifest.xml.jinja2 b/AndroidManifest.xml.jinja2
index 0c421c6..d888de2 100644
--- a/AndroidManifest.xml.jinja2
+++ b/AndroidManifest.xml.jinja2
@@ -136,8 +136,8 @@
                 <data android:scheme="file" />
                 <data android:mimeType="application/x-webarchive-xml"/>
             </intent-filter>
-            <!-- Accept inbound NFC URLs at a low priority -->
-            <intent-filter android:priority="-101">
+            <!-- Accept inbound NFC URLs -->
+            <intent-filter>
                 <action android:name="android.nfc.action.NDEF_DISCOVERED" />
                 <category android:name="android.intent.category.DEFAULT" />
                 <data android:scheme="http" />
diff --git a/res/layout/title_bar_nav.xml b/res/layout/title_bar_nav.xml
index aa5032d..375ba84 100644
--- a/res/layout/title_bar_nav.xml
+++ b/res/layout/title_bar_nav.xml
@@ -61,6 +61,7 @@
             android:contentDescription="@string/accessibility_button_stop"
             android:paddingStart="6dp"
             android:paddingEnd="6dp"
+            android:visibility="gone"
             android:src="@drawable/ic_action_stop" />
 
         <com.android.browser.UrlInputView
@@ -90,7 +91,6 @@
             style="@style/NavButton"
             android:layout_width="wrap_content"
             android:contentDescription="@string/accessibility_button_voice"
-            android:paddingEnd="4dip"
             android:src="@drawable/ic_action_microphone_normal"
             android:visibility="gone" />
 
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);
         }
     }
