diff --git a/package.json b/package.json
index 637f95c74d42db53979c45f6b75e32d355755d5e..41728ed840917081b389365f35e764d38db4c707 100644
--- a/package.json
+++ b/package.json
@@ -47,7 +47,7 @@
     "uuid": "^9.0.1",
     "vue": "^2.7.15",
     "vue-demi": "^0.14.6",
-    "vue-dompurify-html": "4.1.4",
+    "vue-dompurify-html": "^5.0.1",
     "vue-i18n": "^8.28.2",
     "vue-multiselect": "^2.1.8",
     "vue-observe-visibility": "^1.0.0",
diff --git a/src/modules/login/LoginModule.vue b/src/modules/login/LoginModule.vue
index dccb126a60942df6649ef8179f13de916e959027..9179e48161472de31898e308ca35a78fdd182c30 100644
--- a/src/modules/login/LoginModule.vue
+++ b/src/modules/login/LoginModule.vue
@@ -45,6 +45,7 @@ import { defineComponent } from "vue";
 
 // import the store for current module
 import useLoginStore from "./store";
+import { Partner } from "../login/types";
 
 export default defineComponent({
   setup() {
@@ -57,49 +58,50 @@ export default defineComponent({
     moduleIsReady(): boolean {
       return true;
     },
-    partners() {
+    partners(): Partner[] {
       return [
         {
           key: "aims",
-          name: this.$t("page.partners.aims.headline"),
-          logo: this.$t("page.partners.aims.logo"),
-          url: this.$t("page.partners.aims.url"),
+          name: this.$t("page.partners.aims.headline").toString(),
+          logo: this.$t("page.partners.aims.logo").toString(),
+          url: this.$t("page.partners.aims.url").toString(),
         },
         {
           key: "nfdi4ing",
-          name: this.$t("page.partners.nfdi4ing.headline"),
-          logo: this.$t("page.partners.nfdi4ing.logo"),
-          url: this.$t("page.partners.nfdi4ing.url"),
+          name: this.$t("page.partners.nfdi4ing.headline").toString(),
+          logo: this.$t("page.partners.nfdi4ing.logo").toString(),
+          url: this.$t("page.partners.nfdi4ing.url").toString(),
         },
         {
           key: "nfdiMatWerk",
-          name: this.$t("page.partners.nfdiMatWerk.headline"),
-          logo: this.$t("page.partners.nfdiMatWerk.logo"),
-          url: this.$t("page.partners.nfdiMatWerk.url"),
+          name: this.$t("page.partners.nfdiMatWerk.headline").toString(),
+          logo: this.$t("page.partners.nfdiMatWerk.logo").toString(),
+          url: this.$t("page.partners.nfdiMatWerk.url").toString(),
         },
         {
           key: "fdmNrw",
-          name: this.$t("page.partners.fdmNrw.headline"),
-          logo: this.$t("page.partners.fdmNrw.logo"),
-          url: this.$t("page.partners.fdmNrw.url"),
+          name: this.$t("page.partners.fdmNrw.headline").toString(),
+          logo: this.$t("page.partners.fdmNrw.logo").toString(),
+          url: this.$t("page.partners.fdmNrw.url").toString(),
         },
         {
           key: "itCenter",
-          name: this.$t("page.partners.itCenter.headline"),
-          logo: this.$t("page.partners.itCenter.logo"),
-          url: this.$t("page.partners.itCenter.url"),
+          name: this.$t("page.partners.itCenter.headline").toString(),
+          logo: this.$t("page.partners.itCenter.logo").toString(),
+          url: this.$t("page.partners.itCenter.url").toString(),
         },
+
         {
           key: "dfg",
-          name: this.$t("page.partners.dfg.headline"),
-          logo: this.$t("page.partners.dfg.logo"),
-          url: this.$t("page.partners.dfg.url"),
+          name: this.$t("page.partners.dfg.headline").toString(),
+          logo: this.$t("page.partners.dfg.logo").toString(),
+          url: this.$t("page.partners.dfg.url").toString(),
         },
         {
           key: "mkwNrw",
-          name: this.$t("page.partners.mkwNrw.headline"),
-          logo: this.$t("page.partners.mkwNrw.logo"),
-          url: this.$t("page.partners.mkwNrw.url"),
+          name: this.$t("page.partners.mkwNrw.headline").toString(),
+          logo: this.$t("page.partners.mkwNrw.logo").toString(),
+          url: this.$t("page.partners.mkwNrw.url").toString(),
         },
       ];
     },
diff --git a/src/modules/login/components/LoginMain.vue b/src/modules/login/components/LoginMain.vue
index b8a8abaa83a043ad1703636028ffee06d67bab1a..21afc0137e63a16ef5ae19e54dd5ce9bb024e714 100644
--- a/src/modules/login/components/LoginMain.vue
+++ b/src/modules/login/components/LoginMain.vue
@@ -17,16 +17,15 @@
       <div v-else class="v_gapped_container">
         <!-- Institution Shibboleth Login -->
         <b-button
-          v-if="selectedInstitution"
+          v-if="selectedInstitution && !isFirstLogin"
           variant="primary"
           @click="toInstitutionLoginPage"
         >
           {{ selectedInstitution.displayName }}
         </b-button>
-
-        <!-- Other Institutional Account -->
+        <!-- Institutional Account -->
         <b-button variant="primary" @click="switchInstitution">
-          {{ $t("page.login.button_other_institution") }}
+          {{ institutionButtonText }}
         </b-button>
 
         <!-- ORCID Login Button -->
@@ -85,10 +84,15 @@ export default defineComponent({
     },
     redirectUrl(): string | null {
       const query = this.$route.query["redirect"];
-      if (query) {
-        return query as string;
-      }
-      return null;
+      return query ? (query as string) : null;
+    },
+    isFirstLogin(): boolean {
+      return !this.selectedInstitution;
+    },
+    institutionButtonText(): string {
+      return this.isFirstLogin
+        ? this.$t("page.login.button_institution").toString()
+        : this.$t("page.login.button_other_institution").toString();
     },
   },
 
diff --git a/src/modules/login/i18n/de.ts b/src/modules/login/i18n/de.ts
index 7b47a16612a3e27c2c22aeca2e44e7e8e88855e7..0eaa0cd7e91fa48b116872a507e6c82a934d5608 100644
--- a/src/modules/login/i18n/de.ts
+++ b/src/modules/login/i18n/de.ts
@@ -70,6 +70,7 @@ export default {
       title: "Einloggen",
       button_orcid: "Anmelden mit ORCIDĀ®",
       button_other_institution: "Anderes institutionelles Konto",
+      button_institution: "Institutionelles Konto",
     },
 
     logout: {
diff --git a/src/modules/login/i18n/en.ts b/src/modules/login/i18n/en.ts
index e4cebc4c1a28c47474298d12f95da0e32f366f51..7f812a082f2df46f49c7964439daff5694440bee 100644
--- a/src/modules/login/i18n/en.ts
+++ b/src/modules/login/i18n/en.ts
@@ -70,6 +70,7 @@ export default {
       title: "Login",
       button_orcid: "Sign in with ORCIDĀ®",
       button_other_institution: "Other Institutional Account",
+      button_institution: "Institutional Account",
     },
 
     logout: {
diff --git a/src/modules/login/types.ts b/src/modules/login/types.ts
index 5e19685607ae269dd1a4bc81f927bdc56ad27aec..dfbed14c81754b5792bee6cadffaebd01b44c4fc 100644
--- a/src/modules/login/types.ts
+++ b/src/modules/login/types.ts
@@ -27,3 +27,9 @@ export interface DFNAAIData {
   };
   logo?: string;
 }
+export interface Partner {
+  key: string;
+  name: string;
+  logo: string;
+  url: string;
+}
diff --git a/yarn.lock b/yarn.lock
index d70becbd7b37b9368ae03f22cb2af983dc75d244..783620e6c91384a9d7db08cfe673e3775a5176dc 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -13540,7 +13540,7 @@ __metadata:
     vitest: "npm:^0.34.6"
     vue: "npm:^2.7.15"
     vue-demi: "npm:^0.14.6"
-    vue-dompurify-html: "npm:4.1.4"
+    vue-dompurify-html: "npm:^5.0.1"
     vue-i18n: "npm:^8.28.2"
     vue-multiselect: "npm:^2.1.8"
     vue-observe-visibility: "npm:^1.0.0"
@@ -14241,31 +14241,14 @@ __metadata:
   languageName: node
   linkType: hard
 
-"vue-demi@npm:^0.14.0":
-  version: 0.14.7
-  resolution: "vue-demi@npm:0.14.7"
-  peerDependencies:
-    "@vue/composition-api": ^1.0.0-rc.1
-    vue: ^3.0.0-0 || ^2.6.0
-  peerDependenciesMeta:
-    "@vue/composition-api":
-      optional: true
-  bin:
-    vue-demi-fix: bin/vue-demi-fix.js
-    vue-demi-switch: bin/vue-demi-switch.js
-  checksum: 10/04884677b8790320bcd3cbbf8dae1c4da9f4ab304659bf18d69b11255f7d16825d2135d2d0e565b1a1f1b7f601100eb26760254129c6bacec2c7e72ab0f61d52
-  languageName: node
-  linkType: hard
-
-"vue-dompurify-html@npm:4.1.4":
-  version: 4.1.4
-  resolution: "vue-dompurify-html@npm:4.1.4"
+"vue-dompurify-html@npm:^5.0.1":
+  version: 5.0.1
+  resolution: "vue-dompurify-html@npm:5.0.1"
   dependencies:
     dompurify: "npm:^3.0.0"
-    vue-demi: "npm:^0.14.0"
   peerDependencies:
-    vue: ^2.7.0 || ^3.0.0
-  checksum: 10/1e5ff02dfcfd898dfacd21d81a7a1e04a990f85e6d25cc4ceb7af5dc095ad58ebeb1b06ba192ec148254eb9a20e47968c408d770a89a92cb46954d6b2af77f5a
+    vue: ^3.0.0
+  checksum: 10/cc1ada3f3bee2061d38c055a7d9e7ff668e1d4f2fbf63c24ba680d5c81431f5bd4627d6898971a825741e11ded1a93fe8646669126ed7543207dbe521fd6c98a
   languageName: node
   linkType: hard