diff --git a/src/com/android/settings/users/UserSettings.java b/src/com/android/settings/users/UserSettings.java
index 7369a92..14b2833 100644
--- a/src/com/android/settings/users/UserSettings.java
+++ b/src/com/android/settings/users/UserSettings.java
@@ -172,9 +172,11 @@
     @Override
     public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
         if (UserHandle.myUserId() == UserHandle.USER_OWNER) {
-            MenuItem addUserItem = menu.add(0, MENU_ADD_USER, 0, R.string.user_add_user_menu);
-            addUserItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM
-                    | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
+            if (mUserManager.getMaxSupportedUsers() > mUserManager.getUsers().size()) {
+                MenuItem addUserItem = menu.add(0, MENU_ADD_USER, 0, R.string.user_add_user_menu);
+                addUserItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM
+                        | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
+            }
         } else {
             MenuItem removeThisUser = menu.add(0, MENU_REMOVE_USER, 0, R.string.user_remove_user_menu);
             removeThisUser.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM
@@ -338,6 +340,7 @@
             pref.setIcon(R.drawable.ic_user);
             mUserListCategory.addPreference(pref);
         }
+        getActivity().invalidateOptionsMenu();
     }
 
     /* TODO: Put this in an AsyncTask */
