diff --git a/src/app/app.component.html b/src/app/app.component.html
index ca2794862eea9043082527226751ce9fb714eff1..549dff4987b5846b5d1f593d9236935617653af0 100644
--- a/src/app/app.component.html
+++ b/src/app/app.component.html
@@ -14,13 +14,20 @@
     <!-- calculators list as a dropdown menu-->
     <div [hidden]="tabsFitInNavbar">
 
+        <button *ngIf="! currentCalc" mat-button [matMenuTriggerFor]="menu" color="primary" class="calculators-menu-title">
+          <mat-icon class="dropdown-icon">arrow_drop_down</mat-icon>
+          <span class="calc-name">
+            {{ uitextSelectCalc }}
+          </span>
+        </button>
         <button *ngIf="currentCalc" mat-button [matMenuTriggerFor]="menu" color="primary" class="calculators-menu-title">
           <mat-icon class="dropdown-icon">arrow_drop_down</mat-icon>
           <span class="calc-name">
-              {{ currentCalc.title }}
+            {{ currentCalc.title }}
           </span>
           <span class="calc-type" [innerHTML]="'( ' + currentCalc ? currentCalc.type : '' + ' )'"></span>
         </button>
+
         <mat-menu #menu="matMenu" colo="accent">
           <button mat-button *ngFor="let c of calculators" class="calculator-menu-item" [title]="c.title"
           [routerLink]="['/calculator/',c.uid]" [color]="c.active ? 'primary' : ''" [class.active]="c.active"
diff --git a/src/app/app.component.ts b/src/app/app.component.ts
index f83d8007f55546bd189a2bcd0d5332ea8abde0c7..a6607adc619e2667e7e66047bf841fea291def20 100644
--- a/src/app/app.component.ts
+++ b/src/app/app.component.ts
@@ -1,5 +1,5 @@
 import { Component, ApplicationRef, OnInit, OnDestroy, HostListener, ViewChild, ComponentRef } from "@angular/core";
-import { Router, Event, NavigationEnd } from "@angular/router";
+import { Router, Event, NavigationEnd, ActivationEnd } from "@angular/router";
 
 import { Observer, jalhydDateRev } from "jalhyd";
 
@@ -88,6 +88,16 @@ export class AppComponent implements OnInit, OnDestroy, Observer {
       if (event instanceof NavigationEnd) {
         this.sidenav.close();
       }
+      // [de]activate calc tabs depending on loaded route
+      if (event instanceof ActivationEnd) {
+        const path = event.snapshot.url[0].path;
+        if (path === "calculator") {
+          const calcUid = event.snapshot.params.uid;
+          this.setActiveCalc(calcUid);
+        } else {
+          this.setActiveCalc(null);
+        }
+      }
     });
   }
 
@@ -134,6 +144,10 @@ export class AppComponent implements OnInit, OnDestroy, Observer {
     return this.intlService.localizeText("INFO_MENU_HELP_TITLE");
   }
 
+  public get uitextSelectCalc() {
+    return this.intlService.localizeText("INFO_MENU_SELECT_CALC");
+  }
+
   public get calculators() {
     return this._calculators;
   }
diff --git a/src/locale/messages.en.json b/src/locale/messages.en.json
index b77cf3bfa500e4bfda4fb05cbf8457a128f78e11..7b6ecdd758b44544e7179d009fb43e326d7ebece 100644
--- a/src/locale/messages.en.json
+++ b/src/locale/messages.en.json
@@ -78,6 +78,7 @@
     "INFO_MENU_HELP_TITLE": "Help",
     "INFO_MENU_LOAD_SESSION_TITLE": "Load session",
     "INFO_MENU_SAVE_SESSION_TITLE": "Save session",
+    "INFO_MENU_SELECT_CALC": "Select calculator module",
     "INFO_MENU_EMPTY_SESSION_TITLE": "New session",
     "INFO_MENU_NOUVELLE_CALC": "New calculator",
     "INFO_OPTION_NO": "No",
diff --git a/src/locale/messages.fr.json b/src/locale/messages.fr.json
index 42e648cf8f0ca4c7c86e2e7f6914f2ffd30d0f1d..7c92392115027d6ddd0da9a77ef1ecd1f68a6bbc 100644
--- a/src/locale/messages.fr.json
+++ b/src/locale/messages.fr.json
@@ -93,6 +93,7 @@
     "INFO_MENU_HELP_TITLE": "Aide",
     "INFO_MENU_LOAD_SESSION_TITLE": "Charger une session",
     "INFO_MENU_SAVE_SESSION_TITLE": "Enregistrer la session",
+    "INFO_MENU_SELECT_CALC": "Choisir un module de calcul",
     "INFO_MENU_EMPTY_SESSION_TITLE": "Nouvelle session",
     "INFO_MENU_NOUVELLE_CALC": "Nouveau module de calcul",
     "INFO_OPTION_NO": "Non",