diff --git a/core/java/android/app/SearchDialog.java b/core/java/android/app/SearchDialog.java
index af68689..c2afd07 100644
--- a/core/java/android/app/SearchDialog.java
+++ b/core/java/android/app/SearchDialog.java
@@ -464,15 +464,14 @@
         }
     }
 
-    /**    
-     * Update the text in the search button.  Note: This is deprecated functionality, for 
-     * 1.0 compatibility only.
-     */  
-    private void updateSearchButton() { 
+    private void updateSearchButton() {
         String textLabel = null;
         Drawable iconLabel = null;
         int textId = mSearchable.getSearchButtonText(); 
-        if (textId != 0) {
+        if (isBrowserSearch()){
+            iconLabel = getContext().getResources()
+                    .getDrawable(com.android.internal.R.drawable.ic_btn_search_play);
+        } else if (textId != 0) {
             textLabel = mActivityContext.getResources().getString(textId);  
         } else {
             iconLabel = getContext().getResources().
@@ -483,10 +482,6 @@
     }
     
     private void updateSearchAppIcon() {
-        // In Donut, we special-case the case of the browser to hide the app icon as if it were
-        // global search, for extra space for url entry.
-        //
-        // TODO: Remove this special case once the issue has been reconciled in Eclair. 
         if (isBrowserSearch()) {
             mAppIcon.setImageResource(0);
             mAppIcon.setVisibility(View.GONE);
@@ -583,8 +578,7 @@
     }
     
     /**
-     * Hack to determine whether this is the browser, so we can remove the browser icon
-     * to the left of the search field.
+     * Hack to determine whether this is the browser, so we can adjust the UI.
      */
     private boolean isBrowserSearch() {
         return mLaunchComponent.flattenToShortString().startsWith("com.android.browser/");
diff --git a/core/res/res/drawable-hdpi/ic_btn_search_play.png b/core/res/res/drawable-hdpi/ic_btn_search_play.png
new file mode 100644
index 0000000..fb1b974
--- /dev/null
+++ b/core/res/res/drawable-hdpi/ic_btn_search_play.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_btn_search_play.png b/core/res/res/drawable-mdpi/ic_btn_search_play.png
new file mode 100644
index 0000000..dc25dae
--- /dev/null
+++ b/core/res/res/drawable-mdpi/ic_btn_search_play.png
Binary files differ
