diff --git a/src/com/android/contacts/activities/PeopleActivity.java b/src/com/android/contacts/activities/PeopleActivity.java
index 28891e5..93138db 100644
--- a/src/com/android/contacts/activities/PeopleActivity.java
+++ b/src/com/android/contacts/activities/PeopleActivity.java
@@ -16,7 +16,6 @@
 
 package com.android.contacts.activities;
 
-import android.accounts.Account;
 import android.app.Fragment;
 import android.app.FragmentManager;
 import android.app.FragmentTransaction;
@@ -69,7 +68,6 @@
 import com.android.contacts.logging.ScreenEvent.ScreenType;
 import com.android.contacts.model.AccountTypeManager;
 import com.android.contacts.model.account.AccountInfo;
-import com.android.contacts.model.account.AccountType;
 import com.android.contacts.model.account.AccountWithDataSet;
 import com.android.contacts.util.AccountFilterUtil;
 import com.android.contacts.util.Constants;
diff --git a/src/com/android/contacts/database/SimContactDaoImpl.java b/src/com/android/contacts/database/SimContactDaoImpl.java
index 4eb5fd3..b54f272 100644
--- a/src/com/android/contacts/database/SimContactDaoImpl.java
+++ b/src/com/android/contacts/database/SimContactDaoImpl.java
@@ -34,7 +34,6 @@
 import android.provider.ContactsContract.RawContacts;
 import android.support.annotation.VisibleForTesting;
 import android.support.v4.util.ArrayMap;
-import android.support.v4.util.ArraySet;
 import android.telephony.SubscriptionInfo;
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
@@ -48,13 +47,13 @@
 import com.android.contacts.model.account.AccountWithDataSet;
 import com.android.contacts.util.PermissionsUtil;
 import com.android.contacts.util.SharedPreferenceUtil;
-
 import com.google.common.base.Joiner;
 
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -230,7 +229,7 @@
                 final AccountWithDataSet account = AccountQuery.getAccount(accountsCursor);
                 final long id = AccountQuery.getId(accountsCursor);
                 if (!result.containsKey(account)) {
-                    result.put(account, new ArraySet<SimContact>());
+                    result.put(account, new HashSet<SimContact>());
                 }
                 for (SimContact contact : rawContactToSimContact.get(id)) {
                     result.get(account).add(contact);
diff --git a/src/com/android/contacts/model/account/AccountTypeProvider.java b/src/com/android/contacts/model/account/AccountTypeProvider.java
index e30ae29..ba2788a 100644
--- a/src/com/android/contacts/model/account/AccountTypeProvider.java
+++ b/src/com/android/contacts/model/account/AccountTypeProvider.java
@@ -23,7 +23,6 @@
 import android.content.Context;
 import android.content.SyncAdapterType;
 import android.provider.ContactsContract;
-import android.support.v4.util.ArraySet;
 import android.text.TextUtils;
 import android.util.Log;
 
@@ -34,6 +33,7 @@
 import com.google.common.collect.ImmutableMap;
 
 import java.util.Collections;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -226,7 +226,7 @@
 
     private static ImmutableMap<String, AuthenticatorDescription> onlyContactSyncable(
             AuthenticatorDescription[] auths, SyncAdapterType[] syncTypes) {
-        final Set<String> mContactSyncableTypes = new ArraySet<>();
+        final Set<String> mContactSyncableTypes = new HashSet<>();
         for (SyncAdapterType type : syncTypes) {
             if (type.authority.equals(ContactsContract.AUTHORITY)) {
                 mContactSyncableTypes.add(type.accountType);
