diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 5e9df0d..cbff3ae 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -34,6 +34,7 @@
     <uses-permission android:name="android.permission.WRITE_SETTINGS" />
     <uses-permission android:name="android.permission.USE_CREDENTIALS" />
     <uses-permission android:name="android.permission.VIBRATE" />
+    <uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
 
     <application
         android:label="@string/contactsList"
diff --git a/src/com/android/contacts/model/AccountTypes.java b/src/com/android/contacts/model/AccountTypes.java
index acf9569..973820a 100644
--- a/src/com/android/contacts/model/AccountTypes.java
+++ b/src/com/android/contacts/model/AccountTypes.java
@@ -247,16 +247,28 @@
         final AccountManager am = mAccountManager;
         final Account[] accounts = am.getAccounts();
         final ArrayList<Account> matching = Lists.newArrayList();
+        final IContentService cs = ContentResolver.getContentService();
 
         for (Account account : accounts) {
-            // Ensure we have details loaded for each account
-            final BaseAccountType accountType = getInflatedSource(account.type,
-                    BaseAccountType.LEVEL_SUMMARY);
-            final boolean hasContacts = accountType != null;
-            final boolean matchesWritable =
+            boolean syncable = false;
+            try {
+                int isSyncable = cs.getIsSyncable(account, ContactsContract.AUTHORITY);
+                if (isSyncable > 0) {
+                    syncable = true;
+                }
+            } catch (RemoteException e) {
+                Log.e(TAG, "Cannot obtain sync flag for account: " + account, e);
+            }
+            if (syncable) {
+                // Ensure we have details loaded for each account
+                final BaseAccountType accountType = getInflatedSource(account.type,
+                        BaseAccountType.LEVEL_SUMMARY);
+                final boolean hasContacts = accountType != null;
+                final boolean matchesWritable =
                     (!writableOnly || (writableOnly && !accountType.readOnly));
-            if (hasContacts && matchesWritable) {
-                matching.add(account);
+                if (hasContacts && matchesWritable) {
+                    matching.add(account);
+                }
             }
         }
         return matching;
