diff --git a/src/com/android/settings/fingerprint/FingerprintSettings.java b/src/com/android/settings/fingerprint/FingerprintSettings.java
index 3962f22..b070a0a 100644
--- a/src/com/android/settings/fingerprint/FingerprintSettings.java
+++ b/src/com/android/settings/fingerprint/FingerprintSettings.java
@@ -141,6 +141,7 @@
                 mHandler.obtainMessage(MSG_FINGER_AUTH_SUCCESS, fingerId, 0).sendToTarget();
             }
 
+            @Override
             public void onAuthenticationFailed() {
                 mHandler.obtainMessage(MSG_FINGER_AUTH_FAIL).sendToTarget();
             };
@@ -174,6 +175,7 @@
             }
         };
         private final Handler mHandler = new Handler() {
+            @Override
             public void handleMessage(android.os.Message msg) {
                 switch (msg.what) {
                     case MSG_REFRESH_FINGERPRINT_TEMPLATES:
@@ -431,8 +433,6 @@
                                 ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN);
                     }
                 }
-            } else if (requestCode == ADD_FINGERPRINT_REQUEST) {
-                int result = mFingerprintManager.postEnroll();
             }
 
             if (mToken == null) {
@@ -441,6 +441,15 @@
             }
         }
 
+        @Override
+        public void onDestroy() {
+            super.onDestroy();
+            int result = mFingerprintManager.postEnroll();
+            if (result < 0) {
+                Log.w(TAG, "postEnroll failed: result = " + result);
+            }
+        }
+
         private Drawable getHighlightDrawable() {
             if (mHighlightDrawable == null) {
                 final Activity activity = getActivity();
