diff --git a/src/com/android/contacts/common/list/AccountFilterActivity.java b/src/com/android/contacts/common/list/AccountFilterActivity.java
index 966637b..20be63b 100644
--- a/src/com/android/contacts/common/list/AccountFilterActivity.java
+++ b/src/com/android/contacts/common/list/AccountFilterActivity.java
@@ -63,10 +63,6 @@
 
     private ContactListFilter mCurrentFilter;
 
-    private ContactListFilterView mCustomFilterView; // the "Customize" filter
-
-    private boolean mIsCustomFilterViewSelected;
-
     @Override
     protected void onCreate(Bundle icicle) {
         super.onCreate(icicle);
@@ -174,8 +170,6 @@
         final ContactListFilter filter = (ContactListFilter) view.getTag();
         if (filter == null) return; // Just in case
         if (filter.filterType == ContactListFilter.FILTER_TYPE_CUSTOM) {
-            mCustomFilterView = listFilterView;
-            mIsCustomFilterViewSelected = listFilterView.isChecked();
             final Intent intent = new Intent(this,
                     CustomContactListFilterActivity.class);
             listFilterView.setActivated(true);
@@ -196,12 +190,6 @@
 
     @Override
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
-        if (resultCode == AppCompatActivity.RESULT_CANCELED && mCustomFilterView != null &&
-                !mIsCustomFilterViewSelected) {
-            mCustomFilterView.setActivated(false);
-            return;
-        }
-
         if (resultCode != AppCompatActivity.RESULT_OK) {
             return;
         }
diff --git a/src/com/android/contacts/common/list/ContactListFilterView.java b/src/com/android/contacts/common/list/ContactListFilterView.java
index 6df8e21..c6cc597 100644
--- a/src/com/android/contacts/common/list/ContactListFilterView.java
+++ b/src/com/android/contacts/common/list/ContactListFilterView.java
@@ -78,10 +78,6 @@
         setContentDescription(generateContentDescription());
     }
 
-    public boolean isChecked() {
-        return mRadioButton.isChecked();
-    }
-
     public void bindView(AccountTypeManager accountTypes) {
         if (mAccountType == null) {
             mIcon = (ImageView) findViewById(R.id.icon);
