diff --git a/res/xml/browser_preferences.xml b/res/xml/browser_preferences.xml
index fd994e8..501d8c1 100644
--- a/res/xml/browser_preferences.xml
+++ b/res/xml/browser_preferences.xml
@@ -98,20 +98,6 @@
                 android:hint="@string/http"
                 android:inputType="textUri|textMultiLine" />
 
-        <!-- Entries and values in this list are set dynamically. -->
-        <com.android.browser.search.SearchEnginePreference
-                android:key="search_engine"
-                android:title="@string/pref_content_search_engine"
-                android:summary="@string/pref_content_search_engine_summary"
-                android:dialogTitle="@string/pref_content_search_engine" />
-
-        <CheckBoxPreference
-                android:key="show_search_suggestions"
-                android:defaultValue="true"
-                android:title="@string/pref_content_show_search_suggestions"
-                android:summaryOn="@string/pref_content_show_web_suggestions_summary_on"
-                android:summaryOff="@string/pref_content_show_web_suggestions_summary_off" />
-
     </PreferenceCategory>
 
     <PreferenceCategory
@@ -206,6 +192,21 @@
     <PreferenceCategory
             android:title="@string/pref_extras_title">
 
+            <!-- Entries and values in this list are set dynamically. -->
+            <com.android.browser.search.SearchEnginePreference
+                    android:key="search_engine"
+                    android:title="@string/pref_content_search_engine"
+                    android:defaultValue="google"
+                    android:summary="@string/pref_content_search_engine_summary"
+                    android:dialogTitle="@string/pref_content_search_engine" />
+
+            <CheckBoxPreference
+                    android:key="show_search_suggestions"
+                    android:defaultValue="true"
+                    android:title="@string/pref_content_show_search_suggestions"
+                    android:summaryOn="@string/pref_content_show_web_suggestions_summary_on"
+                    android:summaryOff="@string/pref_content_show_web_suggestions_summary_off" />
+
             <PreferenceScreen
                   android:key="website_settings"
                   android:title="@string/pref_extras_website_settings"
diff --git a/src/com/android/browser/BrowserActivity.java b/src/com/android/browser/BrowserActivity.java
index 6f47788..5583466 100644
--- a/src/com/android/browser/BrowserActivity.java
+++ b/src/com/android/browser/BrowserActivity.java
@@ -1185,6 +1185,12 @@
         if (appSearchData == null) {
             appSearchData = createGoogleSearchSourceBundle(GOOGLE_SEARCH_SOURCE_TYPE);
         }
+
+        SearchEngine searchEngine = mSettings.getSearchEngine();
+        if (searchEngine != null && !searchEngine.supportsVoiceSearch()) {
+            appSearchData.putBoolean(SearchManager.DISABLE_VOICE_SEARCH, true);
+        }
+
         super.startSearch(initialQuery, selectInitialQuery, appSearchData, globalSearch);
     }
 
diff --git a/src/com/android/browser/search/DefaultSearchEngine.java b/src/com/android/browser/search/DefaultSearchEngine.java
index 42d274d..c939de7 100644
--- a/src/com/android/browser/search/DefaultSearchEngine.java
+++ b/src/com/android/browser/search/DefaultSearchEngine.java
@@ -67,9 +67,9 @@
         String packageName = mSearchable.getSearchActivity().getPackageName();
         // Use "google" as name to avoid showing Google twice (app + OpenSearch)
         if ("com.google.android.googlequicksearchbox".equals(packageName)) {
-            return "google";
+            return SearchEngine.GOOGLE;
         } else if ("com.android.quicksearchbox".equals(packageName)) {
-            return "google";
+            return SearchEngine.GOOGLE;
         } else {
             return packageName;
         }
@@ -110,6 +110,10 @@
     public void close() {
     }
 
+    public boolean supportsVoiceSearch() {
+        return getName().equals(SearchEngine.GOOGLE);
+    }
+
     @Override
     public String toString() {
         return "ActivitySearchEngine{" + mSearchable + "}";
diff --git a/src/com/android/browser/search/OpenSearchSearchEngine.java b/src/com/android/browser/search/OpenSearchSearchEngine.java
index e78a93c..3c1cd5b 100644
--- a/src/com/android/browser/search/OpenSearchSearchEngine.java
+++ b/src/com/android/browser/search/OpenSearchSearchEngine.java
@@ -196,6 +196,10 @@
         mHttpClient.close();
     }
 
+    public boolean supportsVoiceSearch() {
+        return getName().equals(SearchEngine.GOOGLE);
+    }
+
     private boolean isNetworkConnected(Context context) {
         NetworkInfo networkInfo = getActiveNetworkInfo(context);
         return networkInfo != null && networkInfo.isConnected();
diff --git a/src/com/android/browser/search/SearchEngine.java b/src/com/android/browser/search/SearchEngine.java
index 3d24d2e..b7e1859 100644
--- a/src/com/android/browser/search/SearchEngine.java
+++ b/src/com/android/browser/search/SearchEngine.java
@@ -24,6 +24,9 @@
  */
 public interface SearchEngine {
 
+    // Used if the search engine is Google
+    static final String GOOGLE = "google";
+
     /**
      * Gets the unique name of this search engine.
      */
@@ -54,4 +57,8 @@
      */
     public void close();
 
+    /**
+     * Checks whether this search engine supports voice search.
+     */
+    public boolean supportsVoiceSearch();
 }
