diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java
index 24ffc50..db295cf 100644
--- a/src/com/android/settings/Settings.java
+++ b/src/com/android/settings/Settings.java
@@ -488,7 +488,8 @@
                     target.remove(i);
                 }
             } else if (id == R.id.restriction_settings) {
-                if (um.isLinkedUser()) {
+                if (um.isLinkedUser()
+                        || um.hasUserRestriction(UserManager.DISALLOW_APP_RESTRICTIONS)) {
                     target.remove(i);
                 }
             }
diff --git a/src/com/android/settings/users/RestrictionSettings.java b/src/com/android/settings/users/RestrictionSettings.java
index 19812a3..91b8bd3 100644
--- a/src/com/android/settings/users/RestrictionSettings.java
+++ b/src/com/android/settings/users/RestrictionSettings.java
@@ -46,10 +46,15 @@
 
     private boolean mChallengeSucceeded;
     private boolean mChallengeRequested;
+    private boolean mDisableSelf;
 
     public void onCreate(Bundle icicle) {
         super.onCreate(icicle);
-
+        if (UserManager.get(getActivity()).hasUserRestriction(
+                UserManager.DISALLOW_APP_RESTRICTIONS)) {
+            mDisableSelf = true;
+            return;
+        }
         init(icicle);
         if (icicle != null) {
             mChallengeSucceeded = icicle.getBoolean(KEY_CHALLENGE_SUCCEEDED, false);
@@ -60,7 +65,9 @@
 
     public void onResume() {
         super.onResume();
-        ensurePin();
+        if (!mDisableSelf) {
+            ensurePin();
+        }
     }
 
     private void ensurePin() {
@@ -122,9 +129,10 @@
 
     @Override
     public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
-        menu.add(0, MENU_RESET, 0, R.string.restriction_menu_reset);
-        menu.add(0, MENU_CHANGE_PIN, 0, R.string.restriction_menu_change_pin);
-
+        if (!mDisableSelf) {
+            menu.add(0, MENU_RESET, 0, R.string.restriction_menu_reset);
+            menu.add(0, MENU_CHANGE_PIN, 0, R.string.restriction_menu_change_pin);
+        }
         super.onCreateOptionsMenu(menu, inflater);
     }
 
