         let notificationCenter = NSNotificationCenter.defaultCenter()
         notificationCenter.removeObserver(self, name: UIApplicationWillEnterForegroundNotification, object: nil)
         notificationCenter.removeObserver(self, name: UIApplicationWillResignActiveNotification, object: nil)
+        notificationCenter.removeObserver(self, name: UIApplicationDidBecomeActiveNotification, object: nil)
     }
 
     func checkIfUserRequiresValidation() {
+        guard authState != .Presenting else {
+            return
+        }
+
         presentedViewController?.dismissViewControllerAnimated(false, completion: nil)
         guard let authInfo = KeychainWrapper.authenticationInfo() where authInfo.requiresValidation() else {
             removeBackgroundedBlur()

            touchIDReason: AuthenticationStrings.loginsTouchReason,
            success: {
                self.promptingForTouchID = false
                self.removeBackgroundedBlur()
            },
            cancel: {
                self.promptingForTouchID = false
                self.navigationController?.popToRootViewControllerAnimated(true)
            },
            fallback: {

    func passcodeValidationDidSucceed() {
        removeBackgroundedBlur()
        self.navigationController?.dismissViewControllerAnimated(true, completion: nil)
        self.authState = .NotAuthenticating
    }

    func userDidCancelValidation() {
        self.navigationController?.popToRootViewControllerAnimated(false)
        self.authState = .NotAuthenticating
    }
}

