diff --git a/src/LoginPage.cpp b/src/LoginPage.cpp
index 05741ccaa1ea02e9333d8a0249e61909ab395ae9..fc91835949ec82812212ed7c3cb250d94530d1fe 100644
--- a/src/LoginPage.cpp
+++ b/src/LoginPage.cpp
@@ -315,10 +315,14 @@ LoginPage::checkHomeserverVersion()
                             if (err || flows.flows.empty())
                                     emit versionOkCb(LoginMethod::Password);
 
-                            if (flows.flows[0].type == mtx::user_interactive::auth_types::sso)
-                                    emit versionOkCb(LoginMethod::SSO);
-                            else
-                                    emit versionOkCb(LoginMethod::Password);
+                            LoginMethod login_method = LoginMethod::Password;
+                            for(const auto &flow : flows.flows) {
+                                if (flow.type == mtx::user_interactive::auth_types::sso) {
+                                    login_method = LoginMethod::SSO;
+                                    break;
+                                }
+                            }
+                            emit versionOk(login_method);
                     });
           });
 }