auto import from //branches/cupcake/...@132276
diff --git a/src/com/android/settings/SecuritySettings.java b/src/com/android/settings/SecuritySettings.java
index a0a52a2..cd26492 100644
--- a/src/com/android/settings/SecuritySettings.java
+++ b/src/com/android/settings/SecuritySettings.java
@@ -45,7 +45,8 @@
     private static final String KEY_LOCK_ENABLED = "lockenabled";
     private static final String KEY_VISIBLE_PATTERN = "visiblepattern";
     private static final String KEY_TACTILE_FEEDBACK_ENABLED = "tactilefeedback";
-    private static final int CONFIRM_PATTERN_REQUEST_CODE = 55;
+    private static final int CONFIRM_PATTERN_THEN_DISABLE_REQUEST_CODE = 55;
+    private static final int CONFIRM_PATTERN_THEN_ENABLE_REQUEST_CODE = 56;
 
     private LockPatternUtils mLockPatternUtils;
     private CheckBoxPreference mLockEnabled;
@@ -256,14 +257,24 @@
 
         @Override
         protected void onClick() {
-            if (isChecked() && mLockPatternUtils.savedPatternExists()) {
-                confirmPatternThenDisable();
+            if (mLockPatternUtils.savedPatternExists()) {
+                if (isChecked()) {
+                    confirmPatternThenDisable();
+                } else {
+                    confirmPatternThenEnable();
+                }
             } else {
                 super.onClick();
             }
         }
     }
 
+    private void confirmPatternThenEnable() {
+        final Intent intent = new Intent();
+        intent.setClassName("com.android.settings", "com.android.settings.ConfirmLockPattern");
+        startActivityForResult(intent, CONFIRM_PATTERN_THEN_ENABLE_REQUEST_CODE);
+    }
+
     /**
      * Launch screen to confirm the existing lock pattern.
      * @see #onActivityResult(int, int, android.content.Intent)
@@ -271,7 +282,7 @@
     private void confirmPatternThenDisable() {
         final Intent intent = new Intent();
         intent.setClassName("com.android.settings", "com.android.settings.ConfirmLockPattern");
-        startActivityForResult(intent, CONFIRM_PATTERN_REQUEST_CODE);
+        startActivityForResult(intent, CONFIRM_PATTERN_THEN_DISABLE_REQUEST_CODE);
     }
 
     /**
@@ -282,12 +293,12 @@
             Intent data) {
         super.onActivityResult(requestCode, resultCode, data);
 
-        if (requestCode != CONFIRM_PATTERN_REQUEST_CODE) {
-            return;
-        }
+        final boolean resultOk = resultCode == Activity.RESULT_OK;
 
-        if (resultCode == Activity.RESULT_OK) {
-            mLockPatternUtils.setLockPatternEnabled(false);                
+        if ((requestCode == CONFIRM_PATTERN_THEN_DISABLE_REQUEST_CODE) && resultOk) {
+            mLockPatternUtils.setLockPatternEnabled(false);
+        } else if ((requestCode == CONFIRM_PATTERN_THEN_ENABLE_REQUEST_CODE) && resultOk) {
+            mLockPatternUtils.setLockPatternEnabled(true);
         }
     }
 }