diff --git a/src/com/android/settings/DefaultRingtonePreference.java b/src/com/android/settings/DefaultRingtonePreference.java
index 09f5af4..823c970 100644
--- a/src/com/android/settings/DefaultRingtonePreference.java
+++ b/src/com/android/settings/DefaultRingtonePreference.java
@@ -46,7 +46,7 @@
     @Override
     public void performClick() {
         if (mUserId != UserHandle.USER_CURRENT) {
-            if (Utils.unlockWorkProfileIfNecessary(getContext(), mUserId) ||
+            if (Utils.confirmWorkProfileCredentialsIfNecessary(getContext(), mUserId) ||
                     Utils.startQuietModeDialogIfNecessary(getContext(),
                             UserManager.get(getContext()), mUserId)) {
                 return;
diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java
index 803b8e5..b1c3ab3 100644
--- a/src/com/android/settings/Utils.java
+++ b/src/com/android/settings/Utils.java
@@ -1161,6 +1161,18 @@
         if (!(new LockPatternUtils(context)).isSecure(userId)) {
             return false;
         }
+        return confirmWorkProfileCredentials(context, userId);
+    }
+
+    public static boolean confirmWorkProfileCredentialsIfNecessary(Context context, int userId) {
+        KeyguardManager km = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE);
+        if (!km.isDeviceLocked(userId)) {
+            return false;
+        }
+        return confirmWorkProfileCredentials(context, userId);
+    }
+
+    private static boolean confirmWorkProfileCredentials(Context context, int userId) {
         final KeyguardManager km = (KeyguardManager) context.getSystemService(
                 Context.KEYGUARD_SERVICE);
         final Intent unlockIntent = km.createConfirmDeviceCredentialIntent(null, null, userId);
@@ -1170,7 +1182,6 @@
         } else {
             return false;
         }
-
     }
 
     public static CharSequence getApplicationLabel(Context context, String packageName) {
