diff --git a/src/com/android/settings/development/DevelopmentSettings.java b/src/com/android/settings/development/DevelopmentSettings.java
index ce8acc2..c2571ee 100644
--- a/src/com/android/settings/development/DevelopmentSettings.java
+++ b/src/com/android/settings/development/DevelopmentSettings.java
@@ -900,14 +900,17 @@
     }
 
     private void updatePasswordSummary() {
-        try {
-            if (mBackupManager.hasBackupPassword()) {
-                mPassword.setSummary(R.string.local_backup_password_summary_change);
-            } else {
-                mPassword.setSummary(R.string.local_backup_password_summary_none);
+        mPassword.setEnabled(mBackupManager != null);
+        if (mBackupManager != null) {
+            try {
+                if (mBackupManager.hasBackupPassword()) {
+                    mPassword.setSummary(R.string.local_backup_password_summary_change);
+                } else {
+                    mPassword.setSummary(R.string.local_backup_password_summary_none);
+                }
+            } catch (RemoteException e) {
+                // Not much we can do here
             }
-        } catch (RemoteException e) {
-            // Not much we can do here
         }
     }
 
diff --git a/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java b/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java
index d8870a8..f427e1c 100644
--- a/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java
+++ b/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java
@@ -433,7 +433,7 @@
         String dnsServers = mLinkProperties.getDnsServers().stream()
                 .filter(Inet4Address.class::isInstance)
                 .map(InetAddress::getHostAddress)
-                .collect(Collectors.joining(","));
+                .collect(Collectors.joining("\n"));
 
         // Update UI.
         updatePreference(mIpAddressPref, ipv4Address);
diff --git a/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java
index dc360e8..bdbe48a 100644
--- a/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java
@@ -434,7 +434,7 @@
 
         displayAndResume();
 
-        verify(mockDnsPref).setDetailText("8.8.4.4,8.8.8.8");
+        verify(mockDnsPref).setDetailText("8.8.4.4\n8.8.8.8");
     }
 
     @Test
@@ -546,7 +546,7 @@
         lp.addDnsServer(Constants.IPV4_DNS2);
         updateLinkProperties(lp);
         inOrder.verify(mockDnsPref).setDetailText(
-                Constants.IPV4_DNS1.getHostAddress() + "," +
+                Constants.IPV4_DNS1.getHostAddress() + "\n" +
                 Constants.IPV4_DNS2.getHostAddress());
         inOrder.verify(mockDnsPref).setVisible(true);
     }
