diff --git a/src/com/android/settings/applications/RunningState.java b/src/com/android/settings/applications/RunningState.java
index a3eabb8..e0ac56c 100644
--- a/src/com/android/settings/applications/RunningState.java
+++ b/src/com/android/settings/applications/RunningState.java
@@ -80,6 +80,7 @@
     final PackageManager mPm;
     final UserManager mUm;
     final int mMyUserId;
+    final boolean mHideManagedProfiles;
 
     OnRefreshUiListener mRefreshUiListener;
 
@@ -744,6 +745,7 @@
         mPm = mApplicationContext.getPackageManager();
         mUm = (UserManager)mApplicationContext.getSystemService(Context.USER_SERVICE);
         mMyUserId = UserHandle.myUserId();
+        mHideManagedProfiles = mMyUserId != UserHandle.USER_OWNER;
         mResumed = false;
         mBackgroundThread = new HandlerThread("RunningState:Background");
         mBackgroundThread.start();
@@ -828,6 +830,12 @@
         MergedItem userItem = userItems.get(newItem.mUserId);
         boolean first = userItem == null || userItem.mCurSeq != mSequence;
         if (first) {
+            UserState userState = mUsers.get(newItem.mUserId);
+            UserInfo info = userState != null
+                    ? userState.mInfo : mUm.getUserInfo(newItem.mUserId);
+            if (mHideManagedProfiles && info.isManagedProfile()) {
+                return;
+            }
             if (userItem == null) {
                 userItem = new MergedItem(newItem.mUserId);
                 userItems.put(newItem.mUserId, userItem);
@@ -835,9 +843,8 @@
                 userItem.mChildren.clear();
             }
             userItem.mCurSeq = mSequence;
-            if ((userItem.mUser=mUsers.get(newItem.mUserId)) == null) {
+            if (userState == null) {
                 userItem.mUser = new UserState();
-                UserInfo info = mUm.getUserInfo(newItem.mUserId);
                 userItem.mUser.mInfo = info;
                 userItem.mUser.mIcon = Utils.getUserIcon(context, mUm, info);
                 userItem.mUser.mLabel = Utils.getUserLabel(context, info);
