diff --git a/src/com/android/contacts/activities/ContactBrowserActivity.java b/src/com/android/contacts/activities/ContactBrowserActivity.java
index e970688..af8528c 100644
--- a/src/com/android/contacts/activities/ContactBrowserActivity.java
+++ b/src/com/android/contacts/activities/ContactBrowserActivity.java
@@ -259,6 +259,7 @@
             }
 
             mListFragment.setSelectedContactUri(uri);
+            mListFragment.saveSelectedUri(mPrefs);
             mListFragment.requestSelectionOnScreen(true);
             if (mContactContentDisplayed) {
                 setupContactDetailFragment(uri);
@@ -333,7 +334,7 @@
             if (mSearchMode) {
                 mListFragment = createContactSearchFragment();
                 // When switching to the search mode, erase previous state of the search UI
-                mListFragment.saveSelectedUri(mPrefs);
+                mListFragment.eraseSelectedUri(mPrefs);
             } else {
                 mListFragment = createListFragment(ContactsRequest.ACTION_DEFAULT);
                 mListFragment.requestSelectionOnScreen(false);
@@ -344,10 +345,11 @@
             mListFragment.setQueryString(mActionBarAdapter.getQueryString());
         }
 
-        if (fromRequest) {
+        if (fromRequest && !mSearchMode) {
             Uri selectUri = mRequest.getContactUri();
             if (selectUri != null) {
                 mListFragment.setSelectedContactUri(selectUri);
+                mListFragment.saveSelectedUri(mPrefs);
                 mListFragment.requestSelectionOnScreen(false);
             }
         }
@@ -449,6 +451,7 @@
             requestedContactUri = mListFragment.getFirstContactUri();
             if (requestedContactUri != null) {
                 mListFragment.setSelectedContactUri(requestedContactUri);
+                mListFragment.eraseSelectedUri(mPrefs);
                 mListFragment.requestSelectionOnScreen(false);
             }
         }
@@ -485,6 +488,8 @@
         }
 
         mListFragment.setSelectedContactUri(selectedUri);
+        mListFragment.eraseSelectedUri(mPrefs);
+        mListFragment.requestSelectionOnScreen(true);
         if (mContactContentDisplayed) {
             setupContactDetailFragment(selectedUri);
         }
diff --git a/src/com/android/contacts/list/ContactBrowseListFragment.java b/src/com/android/contacts/list/ContactBrowseListFragment.java
index 65c61a6..8f1efc5 100644
--- a/src/com/android/contacts/list/ContactBrowseListFragment.java
+++ b/src/com/android/contacts/list/ContactBrowseListFragment.java
@@ -336,4 +336,7 @@
 
     public void restoreSelectedUri(SharedPreferences preferences) {
     }
+
+    public void eraseSelectedUri(SharedPreferences preferences) {
+    }
 }
diff --git a/src/com/android/contacts/list/DefaultContactBrowseListFragment.java b/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
index 919c740..68f0607 100644
--- a/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
+++ b/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
@@ -191,13 +191,20 @@
 
     @Override
     public void saveSelectedUri(SharedPreferences preferences) {
-        Editor editor = preferences.edit();
         Uri uri = getSelectedContactUri();
         if (uri == null) {
-            editor.remove(getPersistentSelectionKey());
+            eraseSelectedUri(preferences);
         } else {
+            Editor editor = preferences.edit();
             editor.putString(getPersistentSelectionKey(), uri.toString());
+            editor.apply();
         }
+    }
+
+    @Override
+    public void eraseSelectedUri(SharedPreferences preferences) {
+        Editor editor = preferences.edit();
+        editor.remove(getPersistentSelectionKey());
         editor.apply();
     }
 
