diff --git a/resources/vue/components/courseware/CoursewareAccordionContainer.vue b/resources/vue/components/courseware/CoursewareAccordionContainer.vue
index b297c8bf0e1bdda006601775bf8ada217e04170b..0cb3b43002118e14c9ed76e3c80d6051c23fe4b8 100644
--- a/resources/vue/components/courseware/CoursewareAccordionContainer.vue
+++ b/resources/vue/components/courseware/CoursewareAccordionContainer.vue
@@ -9,7 +9,7 @@
         @closeEdit="initCurrentData"
     >
         <template v-slot:containerContent>
-            <template v-if="showEditMode && canEdit">
+            <template v-if="showEditMode && canEdit && !currentElementisLink">
                 <span aria-live="assertive" class="assistive-text">{{ assistiveLive }}</span>
                 <span id="operation" class="assistive-text">
                     {{$gettext('Drücken Sie die Leertaste, um neu anzuordnen.')}}
@@ -22,7 +22,7 @@
                 :icon="section.icon"
                 :open="index === 0 || sortInSlots.includes(index)"
             >
-                <ul v-if="!showEditMode" class="cw-container-accordion-block-list">
+                <ul v-if="!showEditMode || currentElementisLink" class="cw-container-accordion-block-list">
                     <li v-for="block in section.blocks" :key="block.id" class="cw-block-item">
                         <component
                             :is="component(block)"
@@ -32,47 +32,51 @@
                         />
                     </li>
                 </ul>
-                <draggable
-                    v-if="showEditMode && canEdit && !processing"
-                    class="cw-container-list-block-list cw-container-list-sort-mode"
-                    :class="[section.blocks.length === 0 ? 'cw-container-list-sort-mode-empty' : '']"
-                    tag="ol"
-                    role="listbox"
-                    v-model="section.blocks"
-                    v-bind="dragOptions"
-                    handle=".cw-sortable-handle"
-                    group="blocks"
-                    @start="isDragging = true"
-                    @end="dropBlock"
-                    :containerId="container.id"
-                    :sectionId="index"
-                >
-                    <li v-for="block in section.blocks" :key="block.id" class="cw-block-item cw-block-item-sortable">
-                        <span
-                            :class="{ 'cw-sortable-handle-dragging': isDragging }"
-                            class="cw-sortable-handle"
-                            tabindex="0"
-                            role="option"
-                            aria-describedby="operation"
-                            :ref="'sortableHandle' + block.id"
-                            @keydown="keyHandler($event, block.id, index)"
-                        ></span>
-                        <component
-                            :is="component(block)"
-                            :block="block"
-                            :canEdit="canEdit"
-                            :isTeacher="isTeacher"
-                            :class="{ 'cw-block-item-selected': keyboardSelected === block.id}"
-                            :blockId="block.id"
-                        />
-                    </li>
-                </draggable>
-                <template v-if="showEditMode && canAddElements && !processing">
-                    <courseware-block-adder-area :container="container" :section="index" @updateContainerContent="updateContent"/>
+                <template v-else>
+                    <template v-if="!processing">
+                        <draggable
+                            v-if="canEdit"
+                            class="cw-container-list-block-list cw-container-list-sort-mode"
+                            :class="[section.blocks.length === 0 ? 'cw-container-list-sort-mode-empty' : '']"
+                            tag="ol"
+                            role="listbox"
+                            v-model="section.blocks"
+                            v-bind="dragOptions"
+                            handle=".cw-sortable-handle"
+                            group="blocks"
+                            @start="isDragging = true"
+                            @end="dropBlock"
+                            :containerId="container.id"
+                            :sectionId="index"
+                        >
+                            <li v-for="block in section.blocks" :key="block.id" class="cw-block-item cw-block-item-sortable">
+                                <span
+                                    :class="{ 'cw-sortable-handle-dragging': isDragging }"
+                                    class="cw-sortable-handle"
+                                    tabindex="0"
+                                    role="option"
+                                    aria-describedby="operation"
+                                    :ref="'sortableHandle' + block.id"
+                                    @keydown="keyHandler($event, block.id, index)"
+                                ></span>
+                                <component
+                                    :is="component(block)"
+                                    :block="block"
+                                    :canEdit="canEdit"
+                                    :isTeacher="isTeacher"
+                                    :class="{ 'cw-block-item-selected': keyboardSelected === block.id}"
+                                    :blockId="block.id"
+                                />
+                            </li>
+                        </draggable>
+                        <template v-if="canAddElements">
+                            <courseware-block-adder-area :container="container" :section="index" @updateContainerContent="updateContent"/>
+                        </template>
+                    </template>
+                    <div v-else class="progress-wrapper">
+                        <studip-progress-indicator :description="$gettext('Vorgang wird bearbeitet...')" />
+                    </div>
                 </template>
-                <div v-if="showEditMode && processing" class="progress-wrapper">
-                    <studip-progress-indicator :description="$gettext('Vorgang wird bearbeitet...')" />
-                </div>
             </courseware-collapsible-box>
         </template>
         <template v-slot:containerEditDialog>
@@ -157,7 +161,8 @@ export default {
     computed: {
         ...mapGetters({
             blockById: 'courseware-blocks/byId',
-            viewMode: 'viewMode'
+            viewMode: 'viewMode',
+            currentElementisLink: 'currentElementisLink'
         }),
         showEditMode() {
             return this.viewMode === 'edit';
diff --git a/resources/vue/components/courseware/CoursewareDefaultBlock.vue b/resources/vue/components/courseware/CoursewareDefaultBlock.vue
index 248c0690af6f4891085a0a84e720ac8bc44ef683..ff9701986c346c7e2d1b949dd3a70306bd811931 100644
--- a/resources/vue/components/courseware/CoursewareDefaultBlock.vue
+++ b/resources/vue/components/courseware/CoursewareDefaultBlock.vue
@@ -144,9 +144,10 @@ export default {
             userId: 'userId',
             userById: 'users/byId',
             viewMode: 'viewMode',
+            currentElementisLink: 'currentElementisLink'
         }),
         showEditMode() {
-            let show = this.viewMode === 'edit' || this.blockedByThisUser;
+            let show = (this.viewMode === 'edit' || this.blockedByThisUser) && !this.currentElementisLink;
             if (!show) {
                 this.displayFeature(false);
             }
diff --git a/resources/vue/components/courseware/CoursewareDefaultContainer.vue b/resources/vue/components/courseware/CoursewareDefaultContainer.vue
index fd89439b3558d378c2548695dd8a7e7772f025c1..e1fa87bf5480d6e36eff4007c39934da1d0c626d 100644
--- a/resources/vue/components/courseware/CoursewareDefaultContainer.vue
+++ b/resources/vue/components/courseware/CoursewareDefaultContainer.vue
@@ -108,10 +108,11 @@ export default {
             blockAdder: 'blockAdder',
             userId: 'userId',
             userById: 'users/byId',
-            viewMode: 'viewMode'
+            viewMode: 'viewMode',
+            currentElementisLink: 'currentElementisLink'
         }),
         showEditMode() {
-            return this.viewMode === 'edit';
+            return this.viewMode === 'edit' && !this.currentElementisLink;
         },
         colSpan() {
             return this.container.attributes.payload.colspan ? this.container.attributes.payload.colspan : 'full';
diff --git a/resources/vue/components/courseware/CoursewareListContainer.vue b/resources/vue/components/courseware/CoursewareListContainer.vue
index 3ee4538dc466e457aa25ef19b87f8102341769b0..74c890ba4b0daf06676da19ca5a50a15b8a80483 100644
--- a/resources/vue/components/courseware/CoursewareListContainer.vue
+++ b/resources/vue/components/courseware/CoursewareListContainer.vue
@@ -7,60 +7,62 @@
         @storeContainer="storeContainer"
     >
         <template v-slot:containerContent>
-            <ul v-if="!showEditMode"  class="cw-container-list-block-list">
+            <ul v-if="!showEditMode || currentElementisLink"  class="cw-container-list-block-list">
                 <li v-for="block in blocks" :key="block.id" class="cw-block-item">
                     <component :is="component(block)" :block="block" :canEdit="canEdit" :isTeacher="isTeacher" />
                 </li>
             </ul>
-            <template v-if="showEditMode && !processing">
-                <span aria-live="assertive" class="assistive-text">{{ assistiveLive }}</span>
-                <span id="operation" class="assistive-text">
-                    {{$gettext('Drücken Sie die Leertaste, um neu anzuordnen.')}}
-                </span>
-                <draggable
-                    v-if="showEditMode && canEdit"
-                    class="cw-container-list-block-list cw-container-list-sort-mode"
-                    tag="ol"
-                    role="listbox"
-                    v-model="blockList"
-                    v-bind="dragOptions"
-                    handle=".cw-sortable-handle"
-                    group="blocks"
-                    @start="isDragging = true"
-                    @end="dropBlock"
-                    ref="sortables"
-                    :containerId="container.id"
-                    sectionId="0"
-                >
-                    <li
-                        v-for="block in blockList"
-                        :key="block.id"
-                        class="cw-block-item cw-block-item-sortable"
+            <template v-else>
+                <template v-if="!processing">
+                    <span aria-live="assertive" class="assistive-text">{{ assistiveLive }}</span>
+                    <span id="operation" class="assistive-text">
+                        {{$gettext('Drücken Sie die Leertaste, um neu anzuordnen.')}}
+                    </span>
+                    <draggable
+                        v-if="showEditMode && canEdit"
+                        class="cw-container-list-block-list cw-container-list-sort-mode"
+                        tag="ol"
+                        role="listbox"
+                        v-model="blockList"
+                        v-bind="dragOptions"
+                        handle=".cw-sortable-handle"
+                        group="blocks"
+                        @start="isDragging = true"
+                        @end="dropBlock"
+                        ref="sortables"
+                        :containerId="container.id"
+                        sectionId="0"
                     >
-                        <span
-                            :class="{ 'cw-sortable-handle-dragging': isDragging }"
-                            class="cw-sortable-handle"
-                            tabindex="0"
-                            role="option"
-                            aria-describedby="operation"
-                            :ref="'sortableHandle' + block.id"
-                            @keydown="keyHandler($event, block.id)"
-                        ></span>
-                        <component
-                            :is="component(block)"
-                            :block="block"
-                            :canEdit="canEdit"
-                            :isTeacher="isTeacher"
-                            :class="{ 'cw-block-item-selected': keyboardSelected === block.id}"
-                            :blockId="block.id"
-                        />
-                    </li>
-                </draggable>
-                <courseware-block-adder-area :container="container" :section="0" />
+                        <li
+                            v-for="block in blockList"
+                            :key="block.id"
+                            class="cw-block-item cw-block-item-sortable"
+                        >
+                            <span
+                                :class="{ 'cw-sortable-handle-dragging': isDragging }"
+                                class="cw-sortable-handle"
+                                tabindex="0"
+                                role="option"
+                                aria-describedby="operation"
+                                :ref="'sortableHandle' + block.id"
+                                @keydown="keyHandler($event, block.id)"
+                            ></span>
+                            <component
+                                :is="component(block)"
+                                :block="block"
+                                :canEdit="canEdit"
+                                :isTeacher="isTeacher"
+                                :class="{ 'cw-block-item-selected': keyboardSelected === block.id}"
+                                :blockId="block.id"
+                            />
+                        </li>
+                    </draggable>
+                    <courseware-block-adder-area :container="container" :section="0" />
+                </template>
+                <div v-else class="progress-wrapper" :style="{ height: contentHeight + 'px' }">
+                    <studip-progress-indicator :description="$gettext('Vorgang wird bearbeitet...')" />
+                </div>
             </template>
-            <div v-if="showEditMode && processing" class="progress-wrapper" :style="{ height: contentHeight + 'px' }">
-                <studip-progress-indicator :description="$gettext('Vorgang wird bearbeitet...')" />
-            </div>
         </template>
     </courseware-default-container>
 </template>
@@ -105,7 +107,8 @@ export default {
         ...mapGetters({
             blockById: 'courseware-blocks/byId',
             containerById: 'courseware-containers/byId',
-            viewMode: 'viewMode'
+            viewMode: 'viewMode',
+            currentElementisLink: 'currentElementisLink'
         }),
         blocked() {
             return this.container?.relationships?.['edit-blocker']?.data !== null;
diff --git a/resources/vue/components/courseware/CoursewareRibbonToolbar.vue b/resources/vue/components/courseware/CoursewareRibbonToolbar.vue
index e1373ba012d70fa2bcc3db7b7f74c5c292c74808..edf356e545f9e469ac16486b0f79379d96e934fb 100644
--- a/resources/vue/components/courseware/CoursewareRibbonToolbar.vue
+++ b/resources/vue/components/courseware/CoursewareRibbonToolbar.vue
@@ -100,6 +100,7 @@ export default {
             userById: 'users/byId',
             userId: 'userId',
             selectedToolbarItem: 'selectedToolbarItem',
+            currentElementisLink: 'currentElementisLink',
         }),
         showEditMode() {
             return this.viewMode === 'edit';
@@ -108,7 +109,7 @@ export default {
             if (this.disableAdder) {
                 return false;
             } else {
-                return !this.consumeMode && this.showEditMode && this.canEdit;
+                return !this.consumeMode && this.showEditMode && this.canEdit && !this.currentElementisLink;
             }
         },
         displaySettings() {
diff --git a/resources/vue/components/courseware/CoursewareStructuralElement.vue b/resources/vue/components/courseware/CoursewareStructuralElement.vue
index bdd01692ba713ba7c5651e1f7672fd9f510665e8..a0053e6aa05713051f023c8e932e62823bee0b38 100644
--- a/resources/vue/components/courseware/CoursewareStructuralElement.vue
+++ b/resources/vue/components/courseware/CoursewareStructuralElement.vue
@@ -130,11 +130,12 @@
                             :structuralElement="structuralElement"
                             :canEdit="canEdit"
                         />
-                        <courseware-companion-box
-                            v-if="editView"
-                            :msgCompanion="$gettextInterpolate($gettext('Dieser Inhalt ist aus den persönlichen Lernmaterialien von %{ ownerName } verlinkt und kann nur dort bearbeitet werden.'), { ownerName: ownerName })"
-                            mood="pointing"
-                        />
+                        <div v-if="editView" class="cw-companion-box-wrapper">
+                            <courseware-companion-box
+                                :msgCompanion="$gettextInterpolate($gettext('Dieser Inhalt ist aus den persönlichen Lernmaterialien von %{ ownerName } verlinkt und kann nur dort bearbeitet werden.'), { ownerName: ownerName })"
+                                mood="pointing"
+                            />
+                        </div>
                         <component
                             v-for="container in linkedContainers"
                             :key="container.id"
@@ -146,7 +147,7 @@
                             class="cw-container-item"
                         />
                     </div>
-                    <div v-if="canVisit && canEdit && editView" class="cw-container-wrapper cw-container-wrapper-edit">
+                    <div v-if="canVisit && canEdit && editView && !isLink" class="cw-container-wrapper cw-container-wrapper-edit">
                         <template v-if="!processing">
                             <span aria-live="assertive" class="assistive-text">{{ assistiveLive }}</span>
                             <span id="operation" class="assistive-text">
@@ -827,6 +828,7 @@ export default {
             blockerId: 'currentElementBlockerId',
             blockedByThisUser: 'currentElementBlockedByThisUser',
             blockedByAnotherUser: 'currentElementBlockedByAnotherUser',
+            isLink: 'currentElementisLink',
 
             templates: 'courseware-templates/all',
         }),
@@ -1179,14 +1181,6 @@ export default {
             );
         },
 
-        isLink() {
-            if (this.structuralElement) {
-                return this.structuralElement.attributes['is-link'] === 1;
-            }
-
-            return false;
-        },
-
         linkedElement() {
             if (this.isLink) {
                 return this.structuralElementById({ id: this.structuralElement.attributes['target-id']});
diff --git a/resources/vue/components/courseware/CoursewareTabsContainer.vue b/resources/vue/components/courseware/CoursewareTabsContainer.vue
index dd0d96326be2c83ddcfdc21450d4fc91821dae19..114d86cb42b7016058e6fa9f090b675a16196c59 100644
--- a/resources/vue/components/courseware/CoursewareTabsContainer.vue
+++ b/resources/vue/components/courseware/CoursewareTabsContainer.vue
@@ -9,7 +9,7 @@
         @closeEdit="initCurrentData"
     >
         <template v-slot:containerContent>
-            <template v-if="showEditMode && canEdit">
+            <template v-if="showEditMode && canEdit && !currentElementisLink">
                 <span aria-live="assertive" class="assistive-text">{{ assistiveLive }}</span>
                 <span id="operation" class="assistive-text">
                     {{$gettext('Drücken Sie die Leertaste, um neu anzuordnen.')}}
@@ -24,7 +24,7 @@
                     :icon="section.icon"
                     :selected="sortInTab === index"
                 >
-                    <ul v-if="!showEditMode" class="cw-container-tabs-block-list">
+                    <ul v-if="!showEditMode || currentElementisLink" class="cw-container-tabs-block-list">
                         <li v-for="block in section.blocks" :key="block.id" class="cw-block-item">
                             <component
                                 :is="component(block)"
@@ -34,43 +34,45 @@
                             />
                         </li>
                     </ul>
-                    <template v-if="showEditMode && canEdit">
-                        <draggable
-                            class="cw-container-list-block-list cw-container-list-sort-mode"
-                            :class="[section.blocks.length === 0 ? 'cw-container-list-sort-mode-empty' : '']"
-                            tag="ol"
-                            role="listbox"
-                            v-model="section.blocks"
-                            v-bind="dragOptions"
-                            handle=".cw-sortable-handle"
-                            group="blocks"
-                            @start="isDragging = true"
-                            @end="dropBlock"
-                            :containerId="container.id"
-                            :sectionId="index"
-                        >
-                            <li v-for="block in section.blocks" :key="block.id" class="cw-block-item cw-block-item-sortable">
-                                 <span
-                                    :class="{ 'cw-sortable-handle-dragging': isDragging }"
-                                    class="cw-sortable-handle"
-                                    tabindex="0"
-                                    role="option"
-                                    aria-describedby="operation"
-                                    :ref="'sortableHandle' + block.id"
-                                    @keydown="keyHandler($event, block.id, index)"
-                                ></span>
-                                <component
-                                    :is="component(block)"
-                                    :block="block"
-                                    :canEdit="canEdit"
-                                    :isTeacher="isTeacher"
-                                    :class="{ 'cw-block-item-selected': keyboardSelected === block.id}"
-                                    :blockId="block.id"
-                                />
-                            </li>
-                        </draggable>
-                        <template v-if="canAddElements">
-                            <courseware-block-adder-area :container="container" :section="index" @updateContainerContent="updateContent"/>
+                    <template v-else>
+                        <template v-if="canEdit">
+                            <draggable
+                                class="cw-container-list-block-list cw-container-list-sort-mode"
+                                :class="[section.blocks.length === 0 ? 'cw-container-list-sort-mode-empty' : '']"
+                                tag="ol"
+                                role="listbox"
+                                v-model="section.blocks"
+                                v-bind="dragOptions"
+                                handle=".cw-sortable-handle"
+                                group="blocks"
+                                @start="isDragging = true"
+                                @end="dropBlock"
+                                :containerId="container.id"
+                                :sectionId="index"
+                            >
+                                <li v-for="block in section.blocks" :key="block.id" class="cw-block-item cw-block-item-sortable">
+                                    <span
+                                        :class="{ 'cw-sortable-handle-dragging': isDragging }"
+                                        class="cw-sortable-handle"
+                                        tabindex="0"
+                                        role="option"
+                                        aria-describedby="operation"
+                                        :ref="'sortableHandle' + block.id"
+                                        @keydown="keyHandler($event, block.id, index)"
+                                    ></span>
+                                    <component
+                                        :is="component(block)"
+                                        :block="block"
+                                        :canEdit="canEdit"
+                                        :isTeacher="isTeacher"
+                                        :class="{ 'cw-block-item-selected': keyboardSelected === block.id}"
+                                        :blockId="block.id"
+                                    />
+                                </li>
+                            </draggable>
+                            <template v-if="canAddElements">
+                                <courseware-block-adder-area :container="container" :section="index" @updateContainerContent="updateContent"/>
+                            </template>
                         </template>
                     </template>
                 </courseware-tab>
@@ -164,7 +166,8 @@ export default {
     computed: {
         ...mapGetters({
             blockById: 'courseware-blocks/byId',
-            viewMode: 'viewMode'
+            viewMode: 'viewMode',
+            currentElementisLink: 'currentElementisLink'
         }),
         showEditMode() {
             return this.viewMode === 'edit';
diff --git a/resources/vue/store/courseware/courseware.module.js b/resources/vue/store/courseware/courseware.module.js
index 9aa42813ee6ba68fcd4a36a980a78022a88f6120..996cb37c6d4c35abff58404b45a411a21f1d8dbc 100644
--- a/resources/vue/store/courseware/courseware.module.js
+++ b/resources/vue/store/courseware/courseware.module.js
@@ -98,6 +98,9 @@ const getters = {
     currentElementBlockedByAnotherUser(state, getters) {
         return getters.currentElementBlocked && getters.userId !== getters.currentElementBlockerId;
     },
+    currentElementisLink(state, getters, rootState, rootGetters) {
+        return getters.currentStructuralElement?.attributes?.['is-link'] === 1;
+    },
     oerEnabled(state) {
         return state.oerEnabled;
     },