diff --git a/src/com/android/contacts/AttachImage.java b/src/com/android/contacts/AttachImage.java
index ba1892a..5e0ead4 100644
--- a/src/com/android/contacts/AttachImage.java
+++ b/src/com/android/contacts/AttachImage.java
@@ -175,8 +175,9 @@
     /**
      * Inserts a photo on the raw contact.
      * @param values the photo values
-     * @param assertAccount if true, will check to verify if the account is Google or exchange,
-     *     no photos exist (Google and exchange only take one picture)
+     * @param assertAccount if true, will check to verify that no photos exist for Google,
+     *     Exchange and unsynced phone account types. These account types only take one picture,
+     *     so if one exists, the account will be updated with the new photo.
      */
     private void insertPhoto(ContentValues values, Uri rawContactDataUri,
             boolean assertAccount) {
@@ -185,10 +186,11 @@
             new ArrayList<ContentProviderOperation>();
 
         if (assertAccount) {
-            // make sure for Google and exchange, no pictures exist
+            // Make sure no pictures exist for Google, Exchange and unsynced phone accounts.
             operations.add(ContentProviderOperation.newAssertQuery(rawContactDataUri)
-                    .withSelection(Photo.MIMETYPE + "=? AND "
-                            + RawContacts.ACCOUNT_TYPE + " IN (?,?)",
+                    .withSelection(Photo.MIMETYPE + "=? AND ("
+                            + RawContacts.ACCOUNT_TYPE + " IN (?,?) OR "
+                            + RawContacts.ACCOUNT_TYPE + " IS NULL)",
                             new String[] {Photo.CONTENT_ITEM_TYPE, GoogleAccountType.ACCOUNT_TYPE,
                             ExchangeAccountType.ACCOUNT_TYPE})
                             .withExpectedCount(0).build());
