diff --git a/src/com/android/contacts/activities/ContactBrowserActivity.java b/src/com/android/contacts/activities/ContactBrowserActivity.java
index 4fb835a..ea7fffe 100644
--- a/src/com/android/contacts/activities/ContactBrowserActivity.java
+++ b/src/com/android/contacts/activities/ContactBrowserActivity.java
@@ -506,9 +506,16 @@
 
         @Override
         public void onInvalidSelection() {
-            ContactListFilter filter =
-                    new ContactListFilter(ContactListFilter.FILTER_TYPE_SINGLE_CONTACT);
-            mListFragment.setFilter(filter, false);
+            ContactListFilter filter;
+            ContactListFilter currentFilter = mListFragment.getFilter();
+            if (currentFilter != null
+                    && currentFilter.filterType == ContactListFilter.FILTER_TYPE_SINGLE_CONTACT) {
+                filter = new ContactListFilter(ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS);
+                mListFragment.setFilter(filter);
+            } else {
+                filter = new ContactListFilter(ContactListFilter.FILTER_TYPE_SINGLE_CONTACT);
+                mListFragment.setFilter(filter, false);
+            }
             mContactListFilterController.setContactListFilter(filter, true);
         }
     }
diff --git a/src/com/android/contacts/list/ContactBrowseListFragment.java b/src/com/android/contacts/list/ContactBrowseListFragment.java
index b47c7db..03684f2 100644
--- a/src/com/android/contacts/list/ContactBrowseListFragment.java
+++ b/src/com/android/contacts/list/ContactBrowseListFragment.java
@@ -435,12 +435,6 @@
         if (selectedPosition != -1) {
             mLastSelectedPosition = selectedPosition;
         } else {
-            if (mSelectionRequired) {
-                mSelectionRequired = false;
-                notifyInvalidSelection();
-                return;
-            }
-
             if (isSearchMode()) {
                 selectFirstFoundContactAfterDelay();
                 if (mListener != null) {
@@ -449,6 +443,33 @@
                 return;
             }
 
+            if (mSelectionRequired) {
+                // A specific contact was requested, but it's not in the loaded list.
+
+                // Try reconfiguring and reloading the list that will hopefully contain
+                // the requested contact. Only take one attempt to avoid an infinite loop
+                // in case the contact cannot be found at all.
+                mSelectionRequired = false;
+
+                // If we were looking at a different specific contact, just reload
+                if (mFilter != null
+                        && mFilter.filterType == ContactListFilter.FILTER_TYPE_SINGLE_CONTACT) {
+                    reloadData();
+                } else {
+                    // Otherwise, call the listener, which will adjust the filter.
+                    notifyInvalidSelection();
+                }
+                return;
+            }
+
+            // If we were trying to load a specific contact, but that contact no longer
+            // exists, call the listener, which will adjust the filter.
+            if (mFilter != null
+                    && mFilter.filterType == ContactListFilter.FILTER_TYPE_SINGLE_CONTACT) {
+                notifyInvalidSelection();
+                return;
+            }
+
             saveSelectedUri(null);
             selectDefaultContact();
         }
