diff --git a/gui/qml/main.qml b/gui/qml/main.qml
index f22bdf360290f1b7513d9498250c3b63b6d9e0a0..fe69a3bc8853b38dd6db17da17101ef8d7a658bf 100644
--- a/gui/qml/main.qml
+++ b/gui/qml/main.qml
@@ -24,7 +24,7 @@ ApplicationWindow {
                 console.debug(jsonModel.getJson())
                 login.visible = true
             }
-            if (ctx.loginOk == 'true' && loginDone == false) {
+            if (ctx.loginOk == 'true') {
                 loginOk.visible = true
             }
             if (ctx.errors ) {
diff --git a/pkg/backend/api.go b/pkg/backend/api.go
index 6609b1b7f65c21ecf7995713623d079f6445cace..7c049fc243f43f631423c763c2899c5d9bd96c84 100644
--- a/pkg/backend/api.go
+++ b/pkg/backend/api.go
@@ -17,7 +17,7 @@ func Login(username, password string) {
 	success, err := ctx.bm.DoLogin(username, password)
 	if err != nil {
 		log.Printf("Error on login: %v", err)
-		ctx.Errors = "bad_auth_unknown"
+		ctx.Errors = "bad_auth"
 	} else if success {
 		log.Printf("Logged in as %s", username)
 		ctx.LoginOk = true
@@ -73,13 +73,11 @@ func InitializeBitmaskContext(opts *InitOpts) {
 	opts.AppName = p.AppName
 
 	initOnce.Do(func() { initializeContext(opts) })
-	runDonationReminder()
 	if ctx.bm != nil {
-		if ctx.bm.NeedsCredentials() {
-			ctx.LoginDialog = true
-		}
+		ctx.LoginDialog = ctx.bm.NeedsCredentials()
 		go ctx.updateStatus()
 	}
+	runDonationReminder()
 }
 
 func RefreshContext() *C.char {
diff --git a/pkg/vpn/bonafide/auth_anon.go b/pkg/vpn/bonafide/auth_anon.go
index c6c5775a71e2e4f4c14764a4366cb5f7a0156c76..9fc958706bafb9dbe9cc7a012986c213bdeeeceb 100644
--- a/pkg/vpn/bonafide/auth_anon.go
+++ b/pkg/vpn/bonafide/auth_anon.go
@@ -22,7 +22,7 @@ import (
 type anonymousAuthentication struct{}
 
 func (a *anonymousAuthentication) needsCredentials() bool {
-	return true
+	return false
 }
 
 func (a *anonymousAuthentication) getToken(user, password string) ([]byte, error) {