diff --git a/ihtml/themes/breezy/secondfactor.tpl b/ihtml/themes/breezy/secondfactor.tpl
index 8dac1d49fa3c3696d1a3706463a4cc136acc9ecf..2c3111914a7401899d3ee848ebf6564abb0c893c 100644
--- a/ihtml/themes/breezy/secondfactor.tpl
+++ b/ihtml/themes/breezy/secondfactor.tpl
@@ -7,7 +7,7 @@
 <div id="window-container">
 
 <div id="window-div">
-<form action="index.php" method="post" id="loginform" name="loginform">
+<form action="" method="post" id="loginform" name="loginform">
 
 {$msg_dialogs}
   <div id="window-titlebar">
@@ -31,7 +31,7 @@
     <div>
     </div>
   </div>
-
+  <input type="hidden" name="CSRFtoken" value="{$CSRFtoken}"/>
 </form>
 </div>
 
diff --git a/include/login/class_LoginPost.inc b/include/login/class_LoginPost.inc
index c68f5ddbbcaea41ee99ec0b242824893a244f292..1359a42452779734799b566f4a5f115a04229c7e 100644
--- a/include/login/class_LoginPost.inc
+++ b/include/login/class_LoginPost.inc
@@ -24,7 +24,7 @@
 class LoginPost extends LoginMethod
 {
   /*! \brief List of second factor methods, may be dynamic later */
-  static $secondFactorMethods = ['SecondFactorWebAuthn'];
+  static $secondFactorMethods = ['SecondFactorWebAuthn','SecondFactorTotp'];
 
   /*! \brief Displayed name */
   static function getLabel ()
@@ -67,13 +67,15 @@ class LoginPost extends LoginMethod
       ]);
 
       /* If needed redirect to second factor page */
+      $secondFactor = FALSE;
       foreach (static::$secondFactorMethods as $secondFactorMethod) {
         if (!class_available($secondFactorMethod)) {
           continue;
         }
-        if ($secondFactorMethod::hasSecondFactor()) {
-          static::redirectSecondFactorPage();
-        }
+        $secondFactor = ($secondFactorMethod::hasSecondFactor() || $secondFactor);
+      }
+      if ($secondFactor) {
+        static::redirectSecondFactorPage();
       }
 
       if ($success) {
@@ -208,6 +210,7 @@ class LoginPost extends LoginMethod
     $smarty->assign('date',         date('l, dS F Y H:i:s O'));
     $smarty->assign('lang',         preg_replace('/_.*$/', '', $lang));
     $smarty->assign('rtl',          Language::isRTL($lang));
+    $smarty->assign('CSRFtoken',    CSRFProtection::getToken());
 
     $methodOutputs = [];