diff --git a/src/Form/TfaLoginForm.php b/src/Form/TfaLoginForm.php
index b21e13a..4a06c12 100644
--- a/src/Form/TfaLoginForm.php
+++ b/src/Form/TfaLoginForm.php
@@ -168,13 +168,18 @@ class TfaLoginForm extends UserLoginForm {
         // @todo This is used in send plugins which has not been implemented
         // yet.
         // $this->begin($tfaValidationPlugin);
-        $login_hash = $this->getLoginHash($account);
+        $parameters = [
+          'user' => $account->id(),
+          'hash' => $this->getLoginHash($account),
+        ];
+        $destination = \Drupal::destination()->getAsArray();
+        if (!empty($destination['destination']) && $destination['destination'] != '/user/login') {
+          $parameters += $destination;
+        }
+        \Drupal::request()->query->remove('destination');
         $form_state->setRedirect(
           'tfa.entry',
-          [
-            'user' => $account->id(),
-            'hash' => $login_hash,
-          ]
+          $parameters
         );
       }
       else {
