diff --git a/res/layout/preference_app_restrictions.xml b/res/layout/preference_app_restrictions.xml
index 753099d..fe575a2 100644
--- a/res/layout/preference_app_restrictions.xml
+++ b/res/layout/preference_app_restrictions.xml
@@ -19,7 +19,8 @@
     android:layout_height="wrap_content"
     android:minHeight="?android:attr/listPreferredItemHeight"
     android:gravity="center_vertical"
-    android:paddingStart="@*android:dimen/preference_item_padding_side">
+    android:paddingStart="?android:attr/listPreferredItemPaddingStart"
+    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd" >
 
     <LinearLayout
         android:layout_width="wrap_content"
diff --git a/src/com/android/settings/users/AppRestrictionsFragment.java b/src/com/android/settings/users/AppRestrictionsFragment.java
index 0518f56..9eee4ac 100644
--- a/src/com/android/settings/users/AppRestrictionsFragment.java
+++ b/src/com/android/settings/users/AppRestrictionsFragment.java
@@ -159,34 +159,17 @@
         private boolean panelOpen;
         private boolean immutable;
         private List<Preference> mChildren = new ArrayList<Preference>();
-        private final ColorFilter grayscaleFilter;
 
         AppRestrictionsPreference(Context context, OnClickListener listener) {
             super(context);
             setLayoutResource(R.layout.preference_app_restrictions);
             this.listener = listener;
-
-            ColorMatrix colorMatrix = new ColorMatrix();
-            colorMatrix.setSaturation(0f);
-            float[] matrix = colorMatrix.getArray();
-            matrix[18] = 0.5f;
-            grayscaleFilter = new ColorMatrixColorFilter(colorMatrix);
         }
 
         private void setSettingsEnabled(boolean enable) {
             hasSettings = enable;
         }
 
-        @Override
-        public void setChecked(boolean checked) {
-            if (checked) {
-                getIcon().setColorFilter(null);
-            } else {
-                getIcon().setColorFilter(grayscaleFilter);
-            }
-            super.setChecked(checked);
-        }
-
         void setRestrictions(ArrayList<RestrictionEntry> restrictions) {
             this.restrictions = restrictions;
         }
@@ -246,6 +229,8 @@
                 final Switch toggle = (Switch) widget.getChildAt(0);
                 toggle.setEnabled(!isImmutable());
                 toggle.setTag(this);
+                toggle.setClickable(true);
+                toggle.setFocusable(true);
                 toggle.setOnCheckedChangeListener(new OnCheckedChangeListener() {
                     @Override
                     public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
