diff --git a/smp-angular/src/app/common/dialogs/session-expiration-dialog/session-expiration-dialog.component.html b/smp-angular/src/app/common/dialogs/session-expiration-dialog/session-expiration-dialog.component.html
index 593b9c2c81022ae3357d9875baeef579572a6601..e4bfc80e945b3fde7ae9deb0936d12e2fa26bad0 100644
--- a/smp-angular/src/app/common/dialogs/session-expiration-dialog/session-expiration-dialog.component.html
+++ b/smp-angular/src/app/common/dialogs/session-expiration-dialog/session-expiration-dialog.component.html
@@ -1,6 +1,7 @@
 <h2 mat-dialog-title>{{ "session.expiration.dialog.title" | translate }}</h2>
 <mat-dialog-content>
-  <div innerHTML='{{"session.expiration.dialog.label.session.about.to.expire" | translate:{timeLeft: data.timeLeft, timeout: data.timeout} }}'></div>
+  <div innerHTML='{{"session.expiration.dialog.label.session.about.to.expire" | translate:{timeLeft: data.timeLeft,
+  timeoutMinutes: sessionDurationInMinutes, timeoutSeconds: sessionDurationInMinutesReminder} }}'></div>
 </mat-dialog-content>
 <mat-dialog-actions>
   <button mat-raised-button mat-dialog-close (click)="onLogoutClicked()" tabindex="-1">
diff --git a/smp-angular/src/app/common/dialogs/session-expiration-dialog/session-expiration-dialog.component.ts b/smp-angular/src/app/common/dialogs/session-expiration-dialog/session-expiration-dialog.component.ts
index 126f7d769912facedf070c48b6f90cad443a4743..403310ef55eaa63f8138bd41aab2633e435b7560 100644
--- a/smp-angular/src/app/common/dialogs/session-expiration-dialog/session-expiration-dialog.component.ts
+++ b/smp-angular/src/app/common/dialogs/session-expiration-dialog/session-expiration-dialog.component.ts
@@ -24,5 +24,13 @@ export class SessionExpirationDialogComponent {
     this.securityService.logout();
     this.dialogRef.close();
   }
+
+  get sessionDurationInMinutes() {
+    return Math.floor(this.data.timeout / 60);
+  }
+
+  get sessionDurationInMinutesReminder() {
+    return this.data.timeout % 60;
+  }
 }
 
diff --git a/smp-angular/src/app/http/http-session-interceptor.ts b/smp-angular/src/app/http/http-session-interceptor.ts
index d3cd24c4fb91786ec07936f6f4871a78cd8c7214..2e6a7f1cde465472910665a655097406c53b34fa 100644
--- a/smp-angular/src/app/http/http-session-interceptor.ts
+++ b/smp-angular/src/app/http/http-session-interceptor.ts
@@ -7,6 +7,7 @@ import {MatDialog} from "@angular/material/dialog";
 import {
   SessionExpirationDialogComponent
 } from "../common/dialogs/session-expiration-dialog/session-expiration-dialog.component";
+import {TranslateService} from "@ngx-translate/core";
 
 /*
  * A custom interceptor that handles session expiration before it happens.
@@ -26,6 +27,8 @@ export class HttpSessionInterceptor implements HttpInterceptor {
   private timerToLogoutId: number;
 
   constructor(public securityService: SecurityService,
+              private alertService: AlertMessageService,
+              private translateService: TranslateService,
               private dialog: MatDialog) {
   }
 
@@ -33,7 +36,7 @@ export class HttpSessionInterceptor implements HttpInterceptor {
     clearTimeout(this.timerId);
     clearTimeout(this.timerToLogoutId);
     let user = this.securityService.getCurrentUser();
-    if (user && user.sessionMaxIntervalTimeoutInSeconds && user.sessionMaxIntervalTimeoutInSeconds > this.TIME_BEFORE_EXPIRATION_IN_SECONDS) {
+    if (user?.sessionMaxIntervalTimeoutInSeconds && user.sessionMaxIntervalTimeoutInSeconds > this.TIME_BEFORE_EXPIRATION_IN_SECONDS) {
       let timeout = Math.min((user.sessionMaxIntervalTimeoutInSeconds - this.TIME_BEFORE_EXPIRATION_IN_SECONDS) * 1000, this.MAXIMUM_TIMEOUT_VALUE);
       this.timerId = setTimeout(() => this.sessionExpiringSoon(user.sessionMaxIntervalTimeoutInSeconds), timeout);
     }
@@ -44,6 +47,7 @@ export class HttpSessionInterceptor implements HttpInterceptor {
     // Logout the user after the session expires
     this.timerToLogoutId = setTimeout(() => {
       this.securityService.logout();
+      this.alertService.errorForTranslation("session.alert.message.logout.expired", true);
     }, this.TIME_BEFORE_EXPIRATION_IN_SECONDS * 1000);
 
     this.dialog.open(SessionExpirationDialogComponent, {
diff --git a/smp-angular/src/assets/i18n/en.json b/smp-angular/src/assets/i18n/en.json
index 21eef02b49fd3562839039a75cce41d18920989c..a367f0d5a647ed2bdf39964f05f3601c9b3fcf0c 100644
--- a/smp-angular/src/assets/i18n/en.json
+++ b/smp-angular/src/assets/i18n/en.json
@@ -92,7 +92,8 @@
   "session.expiration.dialog.button.expire": "Extend",
   "session.expiration.dialog.button.logout": "Logout",
   "session.expiration.dialog.title": "Extend session",
-  "session.expiration.dialog.label.session.about.to.expire": "Your session is about to expire in <b>{{timeLeft}}</b> seconds!<br />Would you like to logout now or extend it for another <b>{{timeout}}</b> seconds?",
+  "session.expiration.dialog.label.session.about.to.expire": "Your session is about to expire in <b>{{timeLeft}}</b> seconds!<br />Would you like to logout now or extend it<br /> for another <b>{{timeoutMinutes}}</b> minute(s) and <b>{{timeoutSeconds}}</b> second(s)?",
+  "session.alert.message.logout.expired": "Your session has expired, and you have been logged out",
   "alert.panel.title": "Alerts",
   "alert.panel.user.title": "{{value}} (Email: '{{mailTo}}')",
   "certificate.panel.title": "Selected certificate data",