diff --git a/templates/LoginForm.php b/templates/LoginForm.php
index e3083c6f39e8ad30328ff4dcf233dc5253d7f610..93528e049d521a69a0bf0a70ed4f86d082bb6b46 100644
--- a/templates/LoginForm.php
+++ b/templates/LoginForm.php
@@ -3,10 +3,15 @@
 use SimpleSAML\Module;
 
 $this->data['u2fAvailable'] = !empty($this->data['u2fSignRequest']);
-$this->data['webAuthnAvailable'] = !empty($this->data['webAuthnSignRequest']);
-$this->data['noAlternatives'] = !$this->data['pushAvailable'] && (!$this->data['u2fAvailable']) && (!$this->data['webAuthnAvailable']);
-
+$this->data['webauthnAvailable'] = !empty($this->data['webAuthnSignRequest']);
 $this->data['mode'] = ($this->data['mode'] ?? null) ?: 'otp';
+$this->data['noAlternatives'] = true;
+foreach (['otp', 'push', 'u2f', 'webauthn'] as $mode) {
+    if ($mode !== $this->data['mode'] && $this->data[$mode . 'Available']) {
+        $this->data['noAlternatives'] = false;
+        break;
+    }
+}
 
 // Set default scenario if isn't set
 if (!empty($this->data['authProcFilterScenario'])) {
@@ -259,7 +264,7 @@ if (null !== $this->data['errorCode']) {
                 <div id="AlternateLoginOptions" class="groupMargin hidden js-show">
                     <h3><?php echo $this->t('{privacyidea:privacyidea:alternate_login_options}'); ?></h3>
                     <!-- Alternate Login Options-->
-                    <?php if (($this->data['webAuthnAvailable'] ?? false) && 'webauthn' !== $this->data['mode']) { ?>
+                    <?php if (($this->data['webauthnAvailable'] ?? false) && 'webauthn' !== $this->data['mode']) { ?>
                     <button id="useWebAuthnButton" name="useWebAuthnButton" type="button">
                         <span><?php echo $this->t('{privacyidea:privacyidea:webauthn}'); ?></span>
                     </button>