diff --git a/src/com/android/contacts/activities/ConfirmAddDetailActivity.java b/src/com/android/contacts/activities/ConfirmAddDetailActivity.java
index e613ec1..e3fa7e2 100644
--- a/src/com/android/contacts/activities/ConfirmAddDetailActivity.java
+++ b/src/com/android/contacts/activities/ConfirmAddDetailActivity.java
@@ -746,7 +746,8 @@
 
     private void setDefaultContactImage(String displayName, String lookupKey) {
         mPhotoView.setImageDrawable(ContactPhotoManager.getDefaultAvatarDrawableForContact(
-                getResources(), false, new DefaultImageRequest(displayName, lookupKey)));
+                getResources(), false,
+                new DefaultImageRequest(displayName, lookupKey, false /* isCircular */)));
     }
 
     /**
diff --git a/src/com/android/contacts/activities/PhotoSelectionActivity.java b/src/com/android/contacts/activities/PhotoSelectionActivity.java
index c3b2eeb..da0d2e4 100644
--- a/src/com/android/contacts/activities/PhotoSelectionActivity.java
+++ b/src/com/android/contacts/activities/PhotoSelectionActivity.java
@@ -319,7 +319,7 @@
         if (mPhotoUri != null) {
             // If we have a URI, the bitmap should be cached directly.
             ContactPhotoManager.getInstance(this).loadPhoto(mPhotoView, mPhotoUri, photoWidth,
-                    false, null);
+                    false /* darkTheme */, false /* isCircular */, null);
         } else {
             // If we don't have a URI, just display an empty ImageView. The default image from the
             // ContactDetailFragment will show up in the background instead.
diff --git a/src/com/android/contacts/group/GroupEditorFragment.java b/src/com/android/contacts/group/GroupEditorFragment.java
index 91800f8..3d13bdd 100644
--- a/src/com/android/contacts/group/GroupEditorFragment.java
+++ b/src/com/android/contacts/group/GroupEditorFragment.java
@@ -974,9 +974,10 @@
                 });
             }
             DefaultImageRequest request = new DefaultImageRequest(member.getDisplayName(),
-                    member.getLookupKey());
+                    member.getLookupKey(), true /* isCircular */);
             mPhotoManager.loadPhoto(badge, member.getPhotoUri(),
-                    ViewUtil.getConstantPreLayoutWidth(badge), false, request);
+                    ViewUtil.getConstantPreLayoutWidth(badge), false, true /* isCircular */,
+                            request);
             return result;
         }
 
diff --git a/src/com/android/contacts/list/EmailAddressListAdapter.java b/src/com/android/contacts/list/EmailAddressListAdapter.java
index 28e95d9..9d5ae7a 100644
--- a/src/com/android/contacts/list/EmailAddressListAdapter.java
+++ b/src/com/android/contacts/list/EmailAddressListAdapter.java
@@ -176,7 +176,8 @@
              request = getDefaultImageRequestFromCursor(cursor, EmailQuery.EMAIL_DISPLAY_NAME,
                     EmailQuery.EMAIL_LOOKUP_KEY);
         }
-        getPhotoLoader().loadThumbnail(view.getPhotoView(), photoId, false, request);
+        getPhotoLoader().loadThumbnail(view.getPhotoView(), photoId, false, getCircularPhotos(),
+                request);
     }
 //
 //    protected void bindSearchSnippet(final ContactListItemView view, Cursor cursor) {
diff --git a/src/com/android/contacts/list/PostalAddressListAdapter.java b/src/com/android/contacts/list/PostalAddressListAdapter.java
index 76f38f1..d011430 100644
--- a/src/com/android/contacts/list/PostalAddressListAdapter.java
+++ b/src/com/android/contacts/list/PostalAddressListAdapter.java
@@ -169,7 +169,8 @@
                     PostalQuery.POSTAL_LOOKUP_KEY);
         }
 
-        getPhotoLoader().loadThumbnail(view.getPhotoView(), photoId, false, request);
+        getPhotoLoader().loadThumbnail(view.getPhotoView(), photoId, false, getCircularPhotos(),
+                request);
     }
 //
 //    protected void bindSearchSnippet(final ContactListItemView view, Cursor cursor) {
diff --git a/src/com/android/contacts/util/ImageViewDrawableSetter.java b/src/com/android/contacts/util/ImageViewDrawableSetter.java
index fe19949..226909e 100644
--- a/src/com/android/contacts/util/ImageViewDrawableSetter.java
+++ b/src/com/android/contacts/util/ImageViewDrawableSetter.java
@@ -151,10 +151,11 @@
         }
 
         if (TextUtils.isEmpty(mContact.getLookupKey())) {
-            request = new DefaultImageRequest(null, mContact.getDisplayName(), contactType);
+            request = new DefaultImageRequest(null, mContact.getDisplayName(), contactType,
+                    false /* isCircular */);
         } else {
             request = new DefaultImageRequest(mContact.getDisplayName(), mContact.getLookupKey(),
-                    contactType);
+                    contactType, false /* isCircular */);
         }
         return ContactPhotoManager.getDefaultAvatarDrawableForContact(resources, true, request);
     }
