diff --git a/res/layout-finger/contacts_list_content_join.xml b/res/layout-finger/contacts_list_content_join.xml
index b50713b..f4704cd 100644
--- a/res/layout-finger/contacts_list_content_join.xml
+++ b/res/layout-finger/contacts_list_content_join.xml
@@ -20,6 +20,10 @@
         android:layout_height="match_parent"
         android:orientation="vertical">
 
+    <include android:id="@+id/searchView" 
+        layout="@layout/search_bar"
+        android:visibility="gone"/>
+
     <LinearLayout
             android:layout_width="match_parent"
             android:layout_height="wrap_content" 
diff --git a/src/com/android/contacts/ContactsListActivity.java b/src/com/android/contacts/ContactsListActivity.java
index 7c51ab1..29f059d 100644
--- a/src/com/android/contacts/ContactsListActivity.java
+++ b/src/com/android/contacts/ContactsListActivity.java
@@ -771,13 +771,15 @@
      * Configures search UI.
      */
     private void setupSearchView() {
-        mSearchView = findViewById(R.id.searchView);
-        mSearchEditText = (SearchEditText)mSearchView.findViewById(R.id.search_src_text);
-        mSearchEditText.addTextChangedListener(this);
-        mSearchEditText.setOnEditorActionListener(this);
+        if ((mMode & MODE_MASK_NO_FILTER) == 0) {
+            mSearchView = findViewById(R.id.searchView);
+            mSearchEditText = (SearchEditText)mSearchView.findViewById(R.id.search_src_text);
+            mSearchEditText.addTextChangedListener(this);
+            mSearchEditText.setOnEditorActionListener(this);
 
-        ImageButton searchButton = (ImageButton)mSearchView.findViewById(R.id.search_btn);
-        searchButton.setOnClickListener(this);
+            ImageButton searchButton = (ImageButton)mSearchView.findViewById(R.id.search_btn);
+            searchButton.setOnClickListener(this);
+        }
     }
 
     private boolean isPickerMode() {
@@ -926,11 +928,16 @@
     }
 
     private String getTextFilter() {
-        return mSearchEditText.getText().toString();
+        if (mSearchEditText != null) {
+            return mSearchEditText.getText().toString();
+        }
+        return null;
     }
 
     private void setTextFilter(String filterText) {
-        mSearchEditText.setText(filterText);
+        if (mSearchEditText != null) {
+            mSearchEditText.setText(filterText);
+        }
     }
 
     @Override
