diff --git a/src/com/android/contacts/list/MultiSelectEmailAddressesListAdapter.java b/src/com/android/contacts/list/MultiSelectEmailAddressesListAdapter.java
index af9ee52..a71e49b 100644
--- a/src/com/android/contacts/list/MultiSelectEmailAddressesListAdapter.java
+++ b/src/com/android/contacts/list/MultiSelectEmailAddressesListAdapter.java
@@ -29,6 +29,7 @@
 
 import android.provider.ContactsContract.CommonDataKinds.Email;
 
+import com.android.contacts.common.ContactPhotoManager;
 import com.android.contacts.common.list.ContactListItemView;
 import com.android.contacts.common.list.MultiSelectEntryContactListAdapter;
 import com.android.contacts.common.preference.ContactsPreferences;
@@ -162,9 +163,7 @@
         bindViewId(view, cursor, EmailQuery.EMAIL_ID);
         if (isFirstEntry) {
             bindName(view, cursor);
-            bindQuickContact(view, partition, cursor, EmailQuery.PHOTO_ID,
-                    EmailQuery.PHOTO_URI, EmailQuery.CONTACT_ID,
-                    EmailQuery.LOOKUP_KEY, EmailQuery.DISPLAY_NAME);
+            bindPhoto(view, cursor);
         } else {
             unbindName(view);
             view.removePhotoView(true, false);
@@ -172,6 +171,17 @@
         bindEmailAddress(view, cursor);
     }
 
+    protected void bindPhoto(final ContactListItemView view, Cursor cursor) {
+        final long photoId = cursor.isNull(EmailQuery.PHOTO_ID)
+                ? 0 : cursor.getLong(EmailQuery.PHOTO_ID);
+        final ContactPhotoManager.DefaultImageRequest imageRequest = photoId == 0
+                ? getDefaultImageRequestFromCursor(cursor, EmailQuery.DISPLAY_NAME,
+                EmailQuery.LOOKUP_KEY)
+                : null;
+        getPhotoLoader().loadThumbnail(view.getPhotoView(), photoId, false, getCircularPhotos(),
+                imageRequest);
+    }
+
     protected void unbindName(final ContactListItemView view) {
         view.hideDisplayName();
     }
diff --git a/src/com/android/contacts/list/MultiSelectPhoneNumbersListAdapter.java b/src/com/android/contacts/list/MultiSelectPhoneNumbersListAdapter.java
index 985809b..5dc9c17 100644
--- a/src/com/android/contacts/list/MultiSelectPhoneNumbersListAdapter.java
+++ b/src/com/android/contacts/list/MultiSelectPhoneNumbersListAdapter.java
@@ -29,6 +29,7 @@
 
 import android.provider.ContactsContract.CommonDataKinds.Phone;
 
+import com.android.contacts.common.ContactPhotoManager;
 import com.android.contacts.common.list.ContactListItemView;
 import com.android.contacts.common.list.MultiSelectEntryContactListAdapter;
 import com.android.contacts.common.preference.ContactsPreferences;
@@ -162,9 +163,7 @@
         bindViewId(view, cursor, PhoneQuery.PHONE_ID);
         if (isFirstEntry) {
             bindName(view, cursor);
-            bindQuickContact(view, partition, cursor, PhoneQuery.PHOTO_ID,
-                        PhoneQuery.PHOTO_URI, PhoneQuery.CONTACT_ID,
-                        PhoneQuery.LOOKUP_KEY, PhoneQuery.DISPLAY_NAME);
+            bindPhoto(view, cursor);
         } else {
             unbindName(view);
             view.removePhotoView(true, false);
@@ -172,6 +171,17 @@
         bindPhoneNumber(view, cursor);
     }
 
+    protected void bindPhoto(final ContactListItemView view, Cursor cursor) {
+        final long photoId = cursor.isNull(PhoneQuery.PHOTO_ID)
+                ? 0 : cursor.getLong(PhoneQuery.PHOTO_ID);
+        final ContactPhotoManager.DefaultImageRequest imageRequest = photoId == 0
+                ? getDefaultImageRequestFromCursor(cursor, PhoneQuery.DISPLAY_NAME,
+                PhoneQuery.LOOKUP_KEY)
+                : null;
+        getPhotoLoader().loadThumbnail(view.getPhotoView(), photoId, false, getCircularPhotos(),
+                imageRequest);
+    }
+
     protected void unbindName(final ContactListItemView view) {
         view.hideDisplayName();
     }
