diff --git a/src/com/android/settings/SecuritySettings.java b/src/com/android/settings/SecuritySettings.java
index c2ddb5f..c324dd8 100644
--- a/src/com/android/settings/SecuritySettings.java
+++ b/src/com/android/settings/SecuritySettings.java
@@ -260,15 +260,7 @@
         boolean isSideloadingAllowed =
                 !um.hasUserRestriction(UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES);
         // Side loading of apps.
-        if (isSideloadingAllowed) {
-            mToggleAppInstallation.setEnabled(isSideloadingAllowed);
-        } else {
-            if (deviceAdminCategory != null) {
-                deviceAdminCategory.removePreference(mToggleAppInstallation);
-            } else {
-                mToggleAppInstallation.setEnabled(false);
-            }
-        }
+        mToggleAppInstallation.setEnabled(isSideloadingAllowed);
 
         // Package verification, only visible to primary user and if enabled
         mToggleVerifyApps = (CheckBoxPreference) findPreference(KEY_TOGGLE_VERIFY_APPLICATIONS);
diff --git a/src/com/android/settings/users/AppRestrictionsFragment.java b/src/com/android/settings/users/AppRestrictionsFragment.java
index 4e6e5de..8b93417 100644
--- a/src/com/android/settings/users/AppRestrictionsFragment.java
+++ b/src/com/android/settings/users/AppRestrictionsFragment.java
@@ -682,6 +682,7 @@
                 ((ListPreference)p).setEntryValues(entry.getChoiceValues());
                 ((ListPreference)p).setEntries(entry.getChoiceEntries());
                 ((ListPreference)p).setValue(value);
+                ((ListPreference)p).setDialogTitle(entry.getTitle());
                 break;
             case RestrictionEntry.TYPE_MULTI_SELECT:
                 p = new MultiSelectListPreference(context);
@@ -693,6 +694,7 @@
                     set.add(s);
                 }
                 ((MultiSelectListPreference)p).setValues(set);
+                ((MultiSelectListPreference)p).setDialogTitle(entry.getTitle());
                 break;
             case RestrictionEntry.TYPE_NULL:
             default:
diff --git a/src/com/android/settings/users/RestrictionUtils.java b/src/com/android/settings/users/RestrictionUtils.java
index 8b675a5..241395b 100644
--- a/src/com/android/settings/users/RestrictionUtils.java
+++ b/src/com/android/settings/users/RestrictionUtils.java
@@ -31,22 +31,22 @@
 public class RestrictionUtils {
 
     public static final String [] sRestrictionKeys = {
-        UserManager.DISALLOW_CONFIG_WIFI,
-        UserManager.DISALLOW_CONFIG_BLUETOOTH,
+//        UserManager.DISALLOW_CONFIG_WIFI,
+//        UserManager.DISALLOW_CONFIG_BLUETOOTH,
         UserManager.DISALLOW_SHARE_LOCATION,
         UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES
     };
 
     public static final int [] sRestrictionTitles = {
-        R.string.restriction_wifi_config_title,
-        R.string.restriction_bluetooth_config_title,
+//        R.string.restriction_wifi_config_title,
+//        R.string.restriction_bluetooth_config_title,
         R.string.restriction_location_enable_title,
         R.string.install_applications
     };
 
     public static final int [] sRestrictionDescriptions = {
-        R.string.restriction_wifi_config_summary,
-        R.string.restriction_bluetooth_config_summary,
+//        R.string.restriction_wifi_config_summary,
+//        R.string.restriction_bluetooth_config_summary,
         R.string.restriction_location_enable_summary,
         R.string.install_unknown_applications
     };
