diff --git a/src/app/components/shared/_dialogs/remind-of-tokens/remind-of-tokens.component.html b/src/app/components/shared/_dialogs/remind-of-tokens/remind-of-tokens.component.html
new file mode 100644
index 0000000000000000000000000000000000000000..9e0aa86770ab8d3dc8e03f072df0770cd7e28061
--- /dev/null
+++ b/src/app/components/shared/_dialogs/remind-of-tokens/remind-of-tokens.component.html
@@ -0,0 +1,13 @@
+<div mat-dialog-content>
+  <div style="overflow-y: scroll; max-height: 15rem">
+    <h2 tabindex="0">{{ 'header.sure' | translate }}</h2>
+    <mat-divider></mat-divider>
+    <p tabindex="0">{{ 'header.user-got-tokens' | translate }}</p>
+  </div>
+  <app-dialog-action-buttons
+    buttonsLabelSection="header"
+    confirmButtonLabel="logout"
+    [cancelButtonClickAction]="buildCloseDialogActionCallback()"
+    [confirmButtonClickAction]="buildLogoutActionCallback()"
+  ></app-dialog-action-buttons>
+</div>
diff --git a/src/app/components/shared/_dialogs/remind-of-tokens/remind-of-tokens.component.scss b/src/app/components/shared/_dialogs/remind-of-tokens/remind-of-tokens.component.scss
new file mode 100644
index 0000000000000000000000000000000000000000..a72ea0e88078ea4ee14001ef60b54f3a9f086af6
--- /dev/null
+++ b/src/app/components/shared/_dialogs/remind-of-tokens/remind-of-tokens.component.scss
@@ -0,0 +1,7 @@
+p {
+  margin-bottom: 0;
+}
+
+li {
+  color: var(--on-surface);
+}
diff --git a/src/app/components/shared/_dialogs/remind-of-tokens/remind-of-tokens.component.ts b/src/app/components/shared/_dialogs/remind-of-tokens/remind-of-tokens.component.ts
new file mode 100644
index 0000000000000000000000000000000000000000..c704936694ad4c436fae292114accced1b56e0de
--- /dev/null
+++ b/src/app/components/shared/_dialogs/remind-of-tokens/remind-of-tokens.component.ts
@@ -0,0 +1,42 @@
+import { Component, Inject, OnInit } from '@angular/core';
+import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material';
+import { RoomEditComponent } from '../../../creator/_dialogs/room-edit/room-edit.component';
+
+@Component({
+  selector: 'app-remind-of-tokens',
+  templateUrl: './remind-of-tokens.component.html',
+  styleUrls: ['./remind-of-tokens.component.scss']
+})
+export class RemindOfTokensComponent implements OnInit {
+
+  constructor(
+    public dialogRef: MatDialogRef<RoomEditComponent>,
+    @Inject(MAT_DIALOG_DATA) public data: any
+  ) {
+  }
+
+  ngOnInit() {
+
+  }
+
+
+  close(type: string): void {
+    this.dialogRef.close(type);
+  }
+
+
+  /**
+   * Returns a lambda which closes the dialog on call.
+   */
+  buildCloseDialogActionCallback(): () => void {
+    return () => this.close('abort');
+  }
+
+
+  /**
+   * Returns a lambda which executes the dialog dedicated action on call.
+   */
+  buildLogoutActionCallback(): () => void {
+    return () => this.close('logout');
+  }
+}
diff --git a/src/app/components/shared/header/header.component.ts b/src/app/components/shared/header/header.component.ts
index 7ba46f53f292071130a62a7666aec9086b96c575..3b21a4ce51e8487a4f77427f18f52ba397c07741 100644
--- a/src/app/components/shared/header/header.component.ts
+++ b/src/app/components/shared/header/header.component.ts
@@ -16,7 +16,11 @@ import { Rescale } from '../../../models/rescale';
 import { KeyboardUtils } from '../../../utils/keyboard';
 import { KeyboardKey } from '../../../utils/keyboard/keys';
 import { UserBonusTokenComponent } from '../_dialogs/user-bonus-token/user-bonus-token.component';
+import { RemindOfTokensComponent } from '../_dialogs/remind-of-tokens/remind-of-tokens.component';
 import { QrCodeDialogComponent } from '../_dialogs/qr-code-dialog/qr-code-dialog.component';
+import { BonusTokenService } from '../../../services/http/bonus-token.service';
+import { BonusToken } from '../../../models/bonus-token';
+import { AuthProvider } from '../../../models/auth-provider';
 
 @Component({
   selector: 'app-header',
@@ -38,6 +42,7 @@ export class HeaderComponent implements OnInit {
               public dialog: MatDialog,
               private userService: UserService,
               public eventService: EventService,
+              private bonusTokenService: BonusTokenService,
               private _r: Renderer2
   ) {
   }
@@ -110,6 +115,31 @@ export class HeaderComponent implements OnInit {
   }
 
   logout() {
+    // ToDo: Fix this madness.
+    if (this.user.authProvider === 'ARSNOVA_GUEST') {
+      this.bonusTokenService.getTokensByUserId(this.user.id).subscribe( list => {
+        if (list && list.length > 0) {
+          const dialogRef = this.dialog.open(RemindOfTokensComponent, {
+            width: '600px'
+          });
+          dialogRef.afterClosed()
+            .subscribe(result => {
+              if (result === 'abort') {
+                return;
+              } else if (result === 'logout') {
+                this.logoutUser();
+              }
+            });
+        } else {
+          this.logoutUser();
+        }
+      });
+    } else {
+      this.logoutUser();
+    }
+  }
+
+  logoutUser() {
     this.authenticationService.logout();
     this.translationService.get('header.logged-out').subscribe(message => {
       this.notificationService.show(message);
diff --git a/src/app/components/shared/shared.module.ts b/src/app/components/shared/shared.module.ts
index f813182c563cd41c283f6a54fe7edec63404a445..7ea1d7aca4af4ceb7c5786be176d0962265a0cdd 100644
--- a/src/app/components/shared/shared.module.ts
+++ b/src/app/components/shared/shared.module.ts
@@ -13,6 +13,7 @@ import { ChartsModule } from 'ng2-charts';
 import { RoomJoinComponent } from './room-join/room-join.component';
 import { RoomCreateComponent } from './_dialogs/room-create/room-create.component';
 import { UserBonusTokenComponent } from './_dialogs/user-bonus-token/user-bonus-token.component';
+import { RemindOfTokensComponent } from './_dialogs/remind-of-tokens/remind-of-tokens.component';
 import { LoginComponent } from './login/login.component';
 import { CommentComponent } from './comment/comment.component';
 import { CreateCommentComponent } from './_dialogs/create-comment/create-comment.component';
@@ -46,6 +47,7 @@ import { ArsModule } from '../../../../projects/ars/src/lib/ars.module';
     CommentListComponent,
     RoomCreateComponent,
     UserBonusTokenComponent,
+    RemindOfTokensComponent,
     LoginComponent,
     CommentComponent,
     CreateCommentComponent,
@@ -77,6 +79,7 @@ import { ArsModule } from '../../../../projects/ars/src/lib/ars.module';
     PresentCommentComponent,
     DeleteAccountComponent,
     UserBonusTokenComponent,
+    RemindOfTokensComponent,
     CommentAnswerTextComponent
   ]
 })
diff --git a/src/app/models/client-authentication.ts b/src/app/models/client-authentication.ts
index f25df38ac7cbb66cf0e0ba20727dbd8be1b3b386..bb009d3775cf18ab8754fa6b06d30003637c6721 100644
--- a/src/app/models/client-authentication.ts
+++ b/src/app/models/client-authentication.ts
@@ -3,10 +3,10 @@ import { AuthProvider } from './auth-provider';
 export class ClientAuthentication {
   userId: string;
   loginId: string;
-  authProvider: AuthProvider;
+  authProvider: string;
   token: string;
 
-  constructor(userId: string, loginId: string, authProvider: AuthProvider, token: string) {
+  constructor(userId: string, loginId: string, authProvider: string, token: string) {
     this.userId = userId;
     this.loginId = loginId;
     this.authProvider = authProvider;
diff --git a/src/app/models/user.ts b/src/app/models/user.ts
index 369934fdf1171884a0ca9bdeb4bfc195fe52914a..10c3e6a350fcfc6b76d47b69e187a55344037cce 100644
--- a/src/app/models/user.ts
+++ b/src/app/models/user.ts
@@ -4,12 +4,12 @@ import { UserRole } from './user-roles.enum';
 export class User {
   id: string;
   loginId: string;
-  authProvider: AuthProvider;
+  authProvider: string;
   token: string;
   role: UserRole;
   isGuest: boolean;
 
-  constructor(id: string, loginId: string, authProvider: AuthProvider, token: string, role: UserRole, isGuest: boolean) {
+  constructor(id: string, loginId: string, authProvider: string, token: string, role: UserRole, isGuest: boolean) {
     this.id = id;
     this.loginId = loginId;
     this.authProvider = authProvider;
diff --git a/src/app/services/http/authentication.service.ts b/src/app/services/http/authentication.service.ts
index 0152fc7c50901b98e61b9e4473534a8189b39543..dc06f85790f079cb0fd7e7815e0472dd2c5db537 100644
--- a/src/app/services/http/authentication.service.ts
+++ b/src/app/services/http/authentication.service.ts
@@ -86,7 +86,8 @@ export class AuthenticationService extends BaseHttpService {
     if (this.dataStoreService.has(this.STORAGE_KEY)) {
       // Load user data from local data store if available
       const user: User = JSON.parse(this.dataStoreService.get(this.STORAGE_KEY));
-      const wasGuest = (user.authProvider === AuthProvider.ARSNOVA_GUEST) ? true : false;
+      // ToDo: Fix this madness.
+      const wasGuest = (user.authProvider === 'ARSNOVA_GUEST') ? true : false;
       const connectionUrl: string = this.apiUrl.base + this.apiUrl.auth + this.apiUrl.login + '?refresh=true';
       this.setUser(new User(
         user.id,
@@ -221,6 +222,8 @@ export class AuthenticationService extends BaseHttpService {
   private checkLogin(clientAuthentication: Observable<ClientAuthentication>, userRole: UserRole, isGuest: boolean): Observable<string> {
     return clientAuthentication.pipe(map(result => {
       if (result) {
+        // ToDo: Fix this madness.
+        isGuest = result.authProvider === 'ARSNOVA_GUEST' ? true : false;
         this.setUser(new User(
           result.userId,
           result.loginId,
diff --git a/src/assets/i18n/home/de.json b/src/assets/i18n/home/de.json
index b7acc93efb14cafc497ebcfd65a0ee7e24eb6beb..be82d92ccc3311897e65b495a73b81c7d3013346 100644
--- a/src/assets/i18n/home/de.json
+++ b/src/assets/i18n/home/de.json
@@ -47,6 +47,7 @@
     "accessibility-session": "Öffnet das Sitzungs-Menü. Hier kannst du deine besuchten Sitzungen einsehen oder dich von deinem Konto abmelden.",
     "account-deleted": "Dein Konto wurde gelöscht.",
     "back": "Abbrechen",
+    "cancel": "Abbrechen",
     "delete": "Löschen",
     "delete-account": "Konto löschen",
     "home-header": "Feedback im Hörsaal",
@@ -61,6 +62,7 @@
     "really-delete-account": "Willst du dein Konto mit allen Sitzungen unwiderruflich löschen? Falls du Boni vergeben hast (gelbe Sterne), exportiere die Fragen, damit du eingereichte Bonus-Tokens überprüfen kannst.",
     "sure": "Bist du sicher?",
     "user-bonus-token": "Zu deinen Bonus Tokens",
+    "user-got-tokens": "Du hast noch Tokens für Bonuspunkte, die verloren gehen!",
     "visited-sessions": "Besuchte Sitzungen",
     "bonus-token": "Tokens für Bonuspunkte",
     "no-bonus": "Noch keine Bonuspunkte erhalten."
diff --git a/src/assets/i18n/home/en.json b/src/assets/i18n/home/en.json
index 15cd45d1a65cb19171517b1bf3a883f87187cf46..69bcfd9f6747e867bda349937ff9f23003ac219c 100644
--- a/src/assets/i18n/home/en.json
+++ b/src/assets/i18n/home/en.json
@@ -48,6 +48,7 @@
     "accessibility-session": "Open the session menu. Here you can view the sessions you have attended or log out of your account.",
     "account-deleted": "Your account has been deleted.",
     "back": "Cancel",
+    "cancel": "Cancel",
     "delete": "Delete",
     "delete-account": "Delete account",
     "home-header": "Feedback in the lecture hall",
@@ -62,6 +63,7 @@
     "really-delete-account": "Do you want to irrevocably delete your account with all sessions? If you have given bonuses (yellow stars), export the questions so that you can check submitted bonus tokens.",
     "sure": "Are you sure?",
     "user-bonus-token": "See your bonus tokens",
+    "user-got-tokens": "You have bonus tokens linked to this account that will be lost!",
     "visited-sessions": "Visited sessions",
     "bonus-token": "Tokens for bonus points",
     "no-bonus": "No bonus points earned yet."