diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 397752d..2cc65dd 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -205,6 +205,7 @@
             android:name=".common.preference.ContactsPreferenceActivity"
             android:label="@string/activity_title_settings"
             android:theme="@style/ContactsPreferencesTheme"
+            android:launchMode="singleTop"
             android:exported="false"/>
 
         <activity android:name=".common.activity.LicenseActivity"
diff --git a/res/drawable/ic_menu_import_export.xml b/res/drawable/ic_menu_import_export.xml
deleted file mode 100644
index 9a143c0..0000000
--- a/res/drawable/ic_menu_import_export.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-        android:width="24dp"
-        android:height="24dp"
-        android:viewportHeight="24.0"
-        android:viewportWidth="24.0">
-    <path
-        android:fillColor="#FF000000"
-        android:pathData="M9 3L5 6.99h3V14h2V6.99h3L9 3zm7 14.01V10h-2v7.01h-3L15 21l4-3.99h-3z"/>
-</vector>
diff --git a/res/menu/activity_main_drawer.xml b/res/menu/activity_main_drawer.xml
index 4e58f44..43432ab 100644
--- a/res/menu/activity_main_drawer.xml
+++ b/res/menu/activity_main_drawer.xml
@@ -55,10 +55,6 @@
             android:icon="@drawable/ic_menu_settings"
             android:title="@string/menu_settings"/>
         <item
-            android:id="@+id/nav_import_export"
-            android:icon="@drawable/ic_menu_import_export"
-            android:title="@string/menu_import_export"/>
-        <item
             android:id="@+id/nav_help"
             android:icon="@drawable/ic_menu_help"
             android:title="@string/menu_help"/>
diff --git a/src/com/android/contacts/activities/PeopleActivity.java b/src/com/android/contacts/activities/PeopleActivity.java
index 2a5f8fb..66536ba 100644
--- a/src/com/android/contacts/activities/PeopleActivity.java
+++ b/src/com/android/contacts/activities/PeopleActivity.java
@@ -1262,14 +1262,7 @@
         final int id = item.getItemId();
 
         if (id == R.id.nav_settings) {
-            final Intent intent = new Intent(this, ContactsPreferenceActivity.class);
-            intent.putExtra(ContactsPreferenceActivity.EXTRA_NEW_LOCAL_PROFILE,
-                    ContactEditorFragment.INTENT_EXTRA_NEW_LOCAL_PROFILE);
-            intent.putExtra(ContactsPreferenceActivity.EXTRA_MODE_FULLY_EXPANDED,
-                    QuickContactActivity.MODE_FULLY_EXPANDED);
-            intent.putExtra(ContactsPreferenceActivity.EXTRA_PREVIOUS_SCREEN_TYPE,
-                    QuickContactActivity.EXTRA_PREVIOUS_SCREEN_TYPE);
-            startActivity(intent);
+            startActivity(createPreferenceIntent());
         } else if (id == R.id.nav_help) {
             HelpUtils.launchHelpAndFeedbackForMainScreen(this);
         } else if (id == R.id.nav_all_contacts) {
@@ -1279,8 +1272,6 @@
             intent.putExtra(AccountFilterUtil.EXTRA_CONTACT_LIST_FILTER, filter);
             AccountFilterUtil.handleAccountFilterResult(
                     mContactListFilterController, AppCompatActivity.RESULT_OK, intent);
-        } else if (id == R.id.nav_import_export) {
-            showImportExportDialogFragment();
         } else if (id == R.id.nav_blocked_numbers) {
             final Intent intent = TelecomManagerUtil.createManageBlockedNumbersIntent(
                     (TelecomManager) getSystemService(Context.TELECOM_SERVICE));
@@ -1301,6 +1292,19 @@
         return true;
     }
 
+    private Intent createPreferenceIntent() {
+        final Intent intent = new Intent(this, ContactsPreferenceActivity.class);
+        intent.putExtra(ContactsPreferenceActivity.EXTRA_NEW_LOCAL_PROFILE,
+                ContactEditorFragment.INTENT_EXTRA_NEW_LOCAL_PROFILE);
+        intent.putExtra(ContactsPreferenceActivity.EXTRA_MODE_FULLY_EXPANDED,
+                QuickContactActivity.MODE_FULLY_EXPANDED);
+        intent.putExtra(ContactsPreferenceActivity.EXTRA_PREVIOUS_SCREEN_TYPE,
+                QuickContactActivity.EXTRA_PREVIOUS_SCREEN_TYPE);
+        intent.putExtra(ContactsPreferenceActivity.EXTRA_ARE_CONTACTS_AVAILABLE,
+                areContactsAvailable());
+        return intent;
+    }
+
     private void showImportExportDialogFragment(){
         ImportExportDialogFragment.show(getFragmentManager(), areContactsAvailable(),
                 PeopleActivity.class, ImportExportDialogFragment.EXPORT_MODE_ALL_CONTACTS);
