diff --git a/gui/backend.go b/gui/backend.go
index c953d1826c10bbe878628fae37e5d95e710b06af..5fa6134a128b95c2c10ebb151c77f9504eb04426 100644
--- a/gui/backend.go
+++ b/gui/backend.go
@@ -81,6 +81,11 @@ func ResetError(errname string) {
 	backend.ResetError(errname)
 }
 
+//export ResetNotification
+func ResetNotification(label string) {
+	backend.ResetNotification(label)
+}
+
 //export InstallHelpers
 func InstallHelpers() {
 	backend.InstallHelpers()
diff --git a/gui/handlers.cpp b/gui/handlers.cpp
index f34133e2d6095e978188163c17765b58cb3fefd7..71e5d38b07183a612792ef64c5fd74649b99048a 100644
--- a/gui/handlers.cpp
+++ b/gui/handlers.cpp
@@ -52,6 +52,11 @@ void Backend::resetError(QString errlabel)
     ResetError(toGoStr(errlabel));
 }
 
+void Backend::resetNotification(QString label)
+{
+    ResetNotification(toGoStr(label));
+}
+
 void Backend::quit()
 {
     Quit();
diff --git a/gui/handlers.h b/gui/handlers.h
index 9299827f0e44f50b7244f46637aafdf160e4dfe9..e3d0e2a94e61ec54db2b5dec768eda826fff2564 100644
--- a/gui/handlers.h
+++ b/gui/handlers.h
@@ -40,6 +40,7 @@ public slots:
     void donateAccepted();
     void login(QString username, QString password);
     void resetError(QString errlabel);
+    void resetNotification(QString label);
     void quit();
 };
 
diff --git a/gui/qml/LoginOKDialog.qml b/gui/qml/LoginOKDialog.qml
index be023dd94f1ce52d3f61b76a8bab3ccc3e95b393..bceda1862265a83fde727c013ccd2fcf481df727 100644
--- a/gui/qml/LoginOKDialog.qml
+++ b/gui/qml/LoginOKDialog.qml
@@ -13,7 +13,8 @@ Dialog {
     }
 
     function _loginOk() {
-        backend.resetError("bad_auth")
+        visible: false;
+        backend.resetNotification("login_ok");
     }
 
     visible: false
diff --git a/gui/qml/main.qml b/gui/qml/main.qml
index fe69a3bc8853b38dd6db17da17101ef8d7a658bf..9f8bea3fc564ecb9463622efd9eccde27eaa7a62 100644
--- a/gui/qml/main.qml
+++ b/gui/qml/main.qml
@@ -16,12 +16,12 @@ ApplicationWindow {
         target: jsonModel
         onDataChanged: {
             ctx = JSON.parse(jsonModel.getJson());
+
             if (ctx.donateDialog == 'true') {
                 console.debug(jsonModel.getJson())
                 donate.visible = true
             }
             if (ctx.loginDialog == 'true') {
-                console.debug(jsonModel.getJson())
                 login.visible = true
             }
             if (ctx.loginOk == 'true') {
diff --git a/pkg/backend/api.go b/pkg/backend/api.go
index 7aa5527942361263a12569655b756e98fe4e9fbc..125f7f5832709517e033cfcf2cb3b223a52477d1 100644
--- a/pkg/backend/api.go
+++ b/pkg/backend/api.go
@@ -86,8 +86,20 @@ func RefreshContext() *C.char {
 }
 
 func ResetError(errname string) {
-	log.Println("DEBUG: resetting error", errname)
-	resetErrors(errname)
+	if ctx.Errors == errname {
+		ctx.Errors = ""
+	}
+}
+
+func ResetNotification(label string) {
+	switch label {
+	case "login_ok":
+		ctx.LoginOk = false
+		break
+	default:
+		break
+	}
+	go trigger(OnStatusChanged)
 }
 
 func InstallHelpers() {
diff --git a/pkg/backend/init.go b/pkg/backend/init.go
index af43bab46c249d336c40e7297d5d90533505f910..be4427afc90e8505157024b0cf4eb43c25f153c6 100644
--- a/pkg/backend/init.go
+++ b/pkg/backend/init.go
@@ -40,13 +40,6 @@ func checkErrors(errCh chan string) {
 	}
 }
 
-func resetErrors(errname string) {
-	if ctx.Errors == errname {
-		ctx.Errors = ""
-		log.Println("DEBUG: reset error", errname)
-	}
-}
-
 func initializeBitmask(errCh chan string, opts *InitOpts) {
 	if ctx == nil {
 		log.Println("bug: cannot initialize bitmask, ctx is nil!")