diff --git a/res/values/strings.xml b/res/values/strings.xml
index 5890afb..7b0b280 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -1145,8 +1145,11 @@
     <!-- NFC settings -->
     <!-- Used in the 1st-level settings screen to turn on NFC -->
     <string name="nfc_quick_toggle_title">NFC</string>
-    <!-- Description of NFC in the 1st level settings screen. [CHAR LIMIT=NONE] -->
-    <string name="nfc_quick_toggle_summary">Allow data exchange when the phone touches another device</string>
+    <!-- Description of NFC in the 1st level settings screen, for a tablet. [CHAR LIMIT=NONE] -->
+    <string name="nfc_quick_toggle_summary" product="tablet">Allow data exchange when the tablet touches another device</string>
+    <!-- Description of NFC in the 1st level settings screen, for a phone. [CHAR LIMIT=NONE] -->
+    <string name="nfc_quick_toggle_summary" product="default">Allow data exchange when the phone touches another device</string>
+
     <!-- Used to enter the Android Beam sharing preferences screen. This phrase is a trademark. [CHAR LIMIT=32] -->
     <string name="android_beam_settings_title">Android Beam</string>
     <!-- Used to describe the on state of the Android Beam feature [CHAR LIMIT=NONE] -->
diff --git a/src/com/android/settings/wifi/WifiConfigController.java b/src/com/android/settings/wifi/WifiConfigController.java
index 5f2040a..45d070a 100644
--- a/src/com/android/settings/wifi/WifiConfigController.java
+++ b/src/com/android/settings/wifi/WifiConfigController.java
@@ -65,6 +65,8 @@
         View.OnClickListener, AdapterView.OnItemSelectedListener {
     private static final String KEYSTORE_SPACE = WifiConfiguration.KEYSTORE_URI;
 
+    private static final String PHASE2_PREFIX = "auth=";
+
     private final WifiConfigUiBase mConfigUi;
     private final View mView;
     private final AccessPoint mAccessPoint;
@@ -357,7 +359,7 @@
                 config.eap.setValue((String) mEapMethodSpinner.getSelectedItem());
 
                 config.phase2.setValue((mPhase2Spinner.getSelectedItemPosition() == 0) ? "" :
-                        "auth=" + mPhase2Spinner.getSelectedItem());
+                        PHASE2_PREFIX + mPhase2Spinner.getSelectedItem());
                 config.ca_cert.setValue((mEapCaCertSpinner.getSelectedItemPosition() == 0) ? "" :
                         KEYSTORE_SPACE + Credentials.CA_CERTIFICATE +
                         (String) mEapCaCertSpinner.getSelectedItem());
@@ -547,7 +549,14 @@
             if (mAccessPoint != null && mAccessPoint.networkId != INVALID_NETWORK_ID) {
                 WifiConfiguration config = mAccessPoint.getConfig();
                 setSelection(mEapMethodSpinner, config.eap.value());
-                setSelection(mPhase2Spinner, config.phase2.value());
+
+                final String phase2Method = config.phase2.value();
+                if (phase2Method != null && phase2Method.startsWith(PHASE2_PREFIX)) {
+                    setSelection(mPhase2Spinner, phase2Method.substring(PHASE2_PREFIX.length()));
+                } else {
+                    setSelection(mPhase2Spinner, phase2Method);
+                }
+
                 setCertificate(mEapCaCertSpinner, KEYSTORE_SPACE + Credentials.CA_CERTIFICATE,
                         config.ca_cert.value());
                 setCertificate(mEapUserCertSpinner, Credentials.USER_PRIVATE_KEY,
