diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java
index 72bfa11..387fe23 100644
--- a/src/com/android/settings/Utils.java
+++ b/src/com/android/settings/Utils.java
@@ -419,7 +419,7 @@
     public static UserHandle getManagedProfile(UserManager userManager) {
         final List<UserHandle> userProfiles = userManager.getUserProfiles();
         for (UserHandle profile : userProfiles) {
-            if (profile.getIdentifier() == userManager.getUserHandle()) {
+            if (profile.getIdentifier() == userManager.getProcessUserId()) {
                 continue;
             }
             final UserInfo userInfo = userManager.getUserInfo(profile.getIdentifier());
diff --git a/src/com/android/settings/applications/AppStateAppOpsBridge.java b/src/com/android/settings/applications/AppStateAppOpsBridge.java
index 2ccdc78..80d62b2 100755
--- a/src/com/android/settings/applications/AppStateAppOpsBridge.java
+++ b/src/com/android/settings/applications/AppStateAppOpsBridge.java
@@ -301,8 +301,8 @@
         if (entries == null) {
             return 0;
         }
-        final ArrayMap<String, PermissionState> entriesForProfile = entries.get(mUserManager
-                .getUserHandle());
+        final ArrayMap<String, PermissionState> entriesForProfile =
+                entries.get(mUserManager.getProcessUserId());
         if (entriesForProfile == null) {
             return 0;
         }
@@ -316,8 +316,8 @@
         }
         loadPermissionsStates(entries);
         loadAppOpsStates(entries);
-        final ArrayMap<String, PermissionState> entriesForProfile = entries.get(mUserManager
-                .getUserHandle());
+        final ArrayMap<String, PermissionState> entriesForProfile =
+                entries.get(mUserManager.getProcessUserId());
         if (entriesForProfile == null) {
             return 0;
         }
diff --git a/src/com/android/settings/network/apn/ApnSettings.java b/src/com/android/settings/network/apn/ApnSettings.java
index 4df2e5e..73e9de7 100755
--- a/src/com/android/settings/network/apn/ApnSettings.java
+++ b/src/com/android/settings/network/apn/ApnSettings.java
@@ -301,7 +301,7 @@
 
     @Override
     public EnforcedAdmin getRestrictionEnforcedAdmin() {
-        final UserHandle user = UserHandle.of(mUserManager.getUserHandle());
+        final UserHandle user = UserHandle.of(mUserManager.getProcessUserId());
         if (mUserManager.hasUserRestriction(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS, user)
                 && !mUserManager.hasBaseUserRestriction(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS,
                         user)) {
