diff --git a/resources/assets/javascripts/bootstrap/responsive-navigation.js b/resources/assets/javascripts/bootstrap/responsive-navigation.js
index aa811078ea7f4873a4acdb2adf5ddb925b7c7d22..ad39d2be0922dfa2bfb274bc10f23b736ab85347 100644
--- a/resources/assets/javascripts/bootstrap/responsive-navigation.js
+++ b/resources/assets/javascripts/bootstrap/responsive-navigation.js
@@ -1,6 +1,6 @@
 import ResponsiveNavigation from '../../../vue/components/responsive/ResponsiveNavigation.vue';
 
-STUDIP.ready(() => {
+STUDIP.domReady(() => {
     STUDIP.Vue.load().then(({ createApp }) => {
         createApp({
             el: '#responsive-menu',
diff --git a/resources/assets/javascripts/bootstrap/treeview.js b/resources/assets/javascripts/bootstrap/treeview.js
index 998a70e72ff8bbb2838a8e03d95a89307b956569..d132775a3354042730b2251620f25a262b62cf89 100644
--- a/resources/assets/javascripts/bootstrap/treeview.js
+++ b/resources/assets/javascripts/bootstrap/treeview.js
@@ -1,7 +1,8 @@
 import StudipTree from '../../../vue/components/tree/StudipTree.vue'
 
 STUDIP.ready(() => {
-    document.querySelectorAll('[data-studip-tree]').forEach(element => {
+    document.querySelectorAll('[data-studip-tree]:not(.vueified)').forEach(element => {
+        element.classList.add('vueified');
         STUDIP.Vue.load().then(({ createApp }) => {
             createApp({
                 el: element,
diff --git a/resources/vue/components/responsive/ResponsiveNavigation.vue b/resources/vue/components/responsive/ResponsiveNavigation.vue
index 87084a5ae2ac4f809eecf3538cb3d5e0cacaa6b8..d9c391d7d241643b31fc0918965afdaf68bf02ec 100644
--- a/resources/vue/components/responsive/ResponsiveNavigation.vue
+++ b/resources/vue/components/responsive/ResponsiveNavigation.vue
@@ -563,18 +563,6 @@ export default {
             attributeFilter: ['class']
         });
 
-        // Check for closed dialog, re-mounting the Vue component.
-        this.dialogObserver = new MutationObserver(mutations => {
-            if (mutations[0].removedNodes.length > 0 &&
-                    mutations[0].removedNodes[0].classList.contains('ui-widget-overlay')) {
-                document.getElementById('responsive-menu').replaceChildren(this.$el);
-            }
-        });
-
-        this.dialogObserver.observe(document.body, {
-            childList: true
-        });
-
         this.globalOn('has-contentbar', value => {
             this.hasContentbar = value;
             if (value && this.isFullscreen) {