diff --git a/res/values-sw580dp-w720dp/styles.xml b/res/values-sw580dp-w720dp/styles.xml
index e386bda..f3a3759 100644
--- a/res/values-sw580dp-w720dp/styles.xml
+++ b/res/values-sw580dp-w720dp/styles.xml
@@ -43,7 +43,6 @@
         <item name="list_item_header_underline_height">1dip</item>
         <item name="list_item_contacts_count_text_color">@color/contact_count_text_color</item>
         <item name="list_item_contacts_count_text_size">12sp</item>
-        <item name="contact_filter_popup_width">320dip</item>
         <item name="contact_browser_list_padding_left">0dip</item>
         <item name="contact_browser_list_padding_right">0dip</item>
         <item name="contact_browser_background">@android:color/transparent</item>
diff --git a/res/values-sw580dp/styles.xml b/res/values-sw580dp/styles.xml
index 9244faa..5a28bf6 100644
--- a/res/values-sw580dp/styles.xml
+++ b/res/values-sw580dp/styles.xml
@@ -43,7 +43,6 @@
         <item name="list_item_header_underline_height">1dip</item>
         <item name="list_item_contacts_count_text_color">@color/contact_count_text_color</item>
         <item name="list_item_contacts_count_text_size">12sp</item>
-        <item name="contact_filter_popup_width">320dip</item>
         <item name="contact_browser_list_padding_left">0dip</item>
         <item name="contact_browser_list_padding_right">0dip</item>
         <item name="contact_browser_background">@android:color/transparent</item>
@@ -75,7 +74,6 @@
         <item name="list_item_header_underline_height">1dip</item>
         <item name="list_item_contacts_count_text_color">@color/contact_count_text_color</item>
         <item name="list_item_contacts_count_text_size">12sp</item>
-        <item name="contact_filter_popup_width">320dip</item>
         <item name="contact_browser_list_padding_left">16dip</item>
         <item name="contact_browser_list_padding_right">0dip</item>
         <item name="contact_browser_background">@android:color/transparent</item>
@@ -94,7 +92,7 @@
     </style>
 
     <style name="CustomContactListFilterView" parent="ContactListFilterTheme">
-        <item name="android:layout_width">400dip</item>
+        <item name="android:layout_width">match_parent</item>
         <item name="android:layout_height">400dip</item>
     </style>
 
diff --git a/res/values/attrs.xml b/res/values/attrs.xml
index cd5d137..d79d373 100644
--- a/res/values/attrs.xml
+++ b/res/values/attrs.xml
@@ -67,7 +67,6 @@
     </declare-styleable>
 
     <declare-styleable name="ContactBrowser">
-        <attr name="contact_filter_popup_width" format="dimension"/>
         <attr name="contact_browser_list_padding_left" format="dimension"/>
         <attr name="contact_browser_list_padding_right" format="dimension"/>
         <attr name="contact_browser_background" format="reference"/>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index ae74a56..dc675b3 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -44,7 +44,6 @@
         <item name="list_item_header_height">24dip</item>
         <item name="list_item_header_underline_height">1dip</item>
         <item name="list_item_header_underline_color">@color/people_app_theme_color</item>
-        <item name="contact_filter_popup_width">320dip</item>
         <item name="contact_browser_list_padding_left">16dip</item>
         <item name="contact_browser_list_padding_right">0dip</item>
         <item name="contact_browser_background">@android:color/black</item>
@@ -154,7 +153,6 @@
         <item name="list_item_header_underline_color">@color/people_app_theme_color</item>
         <item name="list_item_contacts_count_text_color">@color/contact_count_text_color</item>
         <item name="list_item_header_text_indent">8dip</item>
-        <item name="contact_filter_popup_width">320dip</item>
         <item name="contact_browser_list_padding_left">16dip</item>
         <item name="contact_browser_list_padding_right">0dip</item>
         <item name="contact_browser_background">@android:color/transparent</item>
@@ -198,7 +196,6 @@
         <item name="list_item_header_text_color">?color/section_header_text_color</item>
         <item name="list_item_header_text_size">14sp</item>
         <item name="list_item_header_text_indent">8dip</item>
-        <item name="contact_filter_popup_width">320dip</item>
         <item name="contact_browser_list_padding_left">16dip</item>
         <item name="contact_browser_list_padding_right">0dip</item>
         <item name="contact_browser_background">@android:color/transparent</item>
diff --git a/src/com/android/contacts/activities/DialtactsActivity.java b/src/com/android/contacts/activities/DialtactsActivity.java
index d0acc6b..6200a69 100644
--- a/src/com/android/contacts/activities/DialtactsActivity.java
+++ b/src/com/android/contacts/activities/DialtactsActivity.java
@@ -348,7 +348,7 @@
                     Log.w(TAG, "Search Fragment isn't available when ContactListFilter is changed");
                     return;
                 }
-                mSearchFragment .setFilter(mContactListFilterController.getFilter());
+                mSearchFragment.setFilter(mContactListFilterController.getFilter());
 
                 invalidateOptionsMenu();
             }
diff --git a/src/com/android/contacts/list/ContactBrowseListFragment.java b/src/com/android/contacts/list/ContactBrowseListFragment.java
index 2380345..2d5fed1 100644
--- a/src/com/android/contacts/list/ContactBrowseListFragment.java
+++ b/src/com/android/contacts/list/ContactBrowseListFragment.java
@@ -660,11 +660,7 @@
     }
 
     private void restoreFilter() {
-        mFilter = ContactListFilter.restoreFromPreferences(mPrefs);
-        if (mFilter == null) {
-            mFilter = ContactListFilter.createFilterWithType(
-                    ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS);
-        }
+        mFilter = ContactListFilter.restoreDefaultPreferences(mPrefs);
     }
 
     private String getPersistentSelectionKey() {
diff --git a/src/com/android/contacts/list/ContactListFilter.java b/src/com/android/contacts/list/ContactListFilter.java
index cfcde2a..724098c 100644
--- a/src/com/android/contacts/list/ContactListFilter.java
+++ b/src/com/android/contacts/list/ContactListFilter.java
@@ -20,6 +20,7 @@
 import android.graphics.drawable.Drawable;
 import android.os.Parcel;
 import android.os.Parcelable;
+import android.provider.ContactsContract.Contacts;
 import android.text.TextUtils;
 
 /**
@@ -202,6 +203,21 @@
             .apply();
     }
 
+    /**
+     * Try to obtain ContactListFilter object saved in SharedPreference.
+     * If there's no info there, return custom filter instead, assuming the user wants contacts
+     * which ContactsProvider remembers as "visible contacts".
+     * (See also {@link Contacts#IN_VISIBLE_GROUP})
+     */
+    public static ContactListFilter restoreDefaultPreferences(SharedPreferences prefs) {
+        ContactListFilter filter = restoreFromPreferences(prefs);
+        if (filter == null) {
+            // Show contacts in IN_VISIBLE_GROUP instead.
+            filter = ContactListFilter.createFilterWithType(ContactListFilter.FILTER_TYPE_CUSTOM);
+        }
+        return filter;
+    }
+
     public static ContactListFilter restoreFromPreferences(SharedPreferences prefs) {
         int filterType = prefs.getInt(KEY_FILTER_TYPE, FILTER_TYPE_DEFAULT);
         if (filterType == FILTER_TYPE_DEFAULT) {
diff --git a/src/com/android/contacts/list/ContactListFilterController.java b/src/com/android/contacts/list/ContactListFilterController.java
index 28b62ca..87228a2 100644
--- a/src/com/android/contacts/list/ContactListFilterController.java
+++ b/src/com/android/contacts/list/ContactListFilterController.java
@@ -45,7 +45,7 @@
 
     public void onStart() {
         if (mFilter == null) {
-            mFilter = ContactListFilter.restoreFromPreferences(getSharedPreferences());
+            mFilter = ContactListFilter.restoreDefaultPreferences(getSharedPreferences());
             mIsInitialized = true;
         }
     }
