diff --git a/resources/vue/components/courseware/CoursewareAccordionContainer.vue b/resources/vue/components/courseware/CoursewareAccordionContainer.vue
index 3f99e9b5a237650ed683b2a7ef20ecffb233e23a..17f8d01996a5b1ad7b94dd39c3bc193db39ddc7c 100755
--- a/resources/vue/components/courseware/CoursewareAccordionContainer.vue
+++ b/resources/vue/components/courseware/CoursewareAccordionContainer.vue
@@ -121,8 +121,7 @@ export default {
             unlockObject: 'unlockObject',
         }),
         initCurrentData() {
-            // clone container to make edit reversible
-            this.currentContainer = JSON.parse(JSON.stringify(this.container));
+            this.currentContainer = _.cloneDeep(this.container);
 
             let view = this;
             let sections = this.currentContainer.attributes.payload.sections;
@@ -157,6 +156,9 @@ export default {
             this.currentContainer.attributes.payload.sections.splice(index, 1);
         },
         async storeContainer() {
+            this.currentContainer.attributes.payload.sections.forEach(section => {
+                section.blocks = section.blocks.map((block) => {return block.id;});
+            });
             await this.updateContainer({
                 container: this.currentContainer,
                 structuralElementId: this.currentContainer.relationships['structural-element'].data.id,
@@ -165,7 +167,10 @@ export default {
             this.initCurrentData();
         },
         component(block) {
-            return 'courseware-' + block.attributes["block-type"] + '-block';
+            if (block.attributes) {
+                return 'courseware-' + block.attributes["block-type"] + '-block';
+            }
+            return null;
         },
         updateContent(blockAdder) {
             if(blockAdder.container.id === this.container.id) {
@@ -173,5 +178,10 @@ export default {
             }
         }
     },
+    watch: {
+        blocks() {
+            this.initCurrentData();
+        }
+    }
 };
 </script>
diff --git a/resources/vue/components/courseware/CoursewareCollapsibleBox.vue b/resources/vue/components/courseware/CoursewareCollapsibleBox.vue
index 70bcf03fa3f0a3099c22dcd32440383f662d0141..9021e2e1ec3feddad3221cbc9216a5182faef9de 100755
--- a/resources/vue/components/courseware/CoursewareCollapsibleBox.vue
+++ b/resources/vue/components/courseware/CoursewareCollapsibleBox.vue
@@ -1,7 +1,7 @@
 <template>
     <div class="cw-collapsible" :class="{ 'cw-collapsible-open': isOpen }">
         <header :class="{ 'cw-collapsible-open': isOpen }" class="cw-collapsible-title" @click="isOpen = !isOpen">
-            <studip-icon v-if="icon !== ''" :shape="icon" /> {{ title }}
+            <studip-icon v-if="icon" :shape="icon" /> {{ title }}
         </header>
         <div class="cw-collapsible-content" :class="{ 'cw-collapsible-content-open': isOpen }">
             <slot></slot>
diff --git a/resources/vue/components/courseware/CoursewareListContainer.vue b/resources/vue/components/courseware/CoursewareListContainer.vue
index 096befe2b8edefac163f679aff10b5f2c82cdc21..ed60f824e74b3a38c39bb8bf14e4eae838378838 100755
--- a/resources/vue/components/courseware/CoursewareListContainer.vue
+++ b/resources/vue/components/courseware/CoursewareListContainer.vue
@@ -56,6 +56,7 @@ export default {
             if (block.attributes["block-type"] !== undefined) {
                 return 'courseware-' + block.attributes["block-type"] + '-block';
             }
+            return null;
         },
     },
     mounted() {},
diff --git a/resources/vue/components/courseware/CoursewareTabsContainer.vue b/resources/vue/components/courseware/CoursewareTabsContainer.vue
index d14503e3d952be9c50a6af8518bc789adc046c5a..f8502bd85425705a5b841ac33600b84b26d13551 100755
--- a/resources/vue/components/courseware/CoursewareTabsContainer.vue
+++ b/resources/vue/components/courseware/CoursewareTabsContainer.vue
@@ -128,8 +128,7 @@ export default {
             unlockObject: 'unlockObject',
         }),
         initCurrentData() {
-            // clone container to make edit reversible
-            this.currentContainer = JSON.parse(JSON.stringify(this.container));
+            this.currentContainer = _.cloneDeep(this.container);
 
             let view = this;
             let sections = this.currentContainer.attributes.payload.sections;
@@ -164,6 +163,10 @@ export default {
             this.currentContainer.attributes.payload.sections.splice(index, 1);
         },
         async storeContainer() {
+            this.currentContainer.attributes.payload.sections.forEach(section => {
+                section.blocks = section.blocks.map((block) => {return block.id;});
+            });
+
             await this.updateContainer({
                 container: this.currentContainer,
                 structuralElementId: this.currentContainer.relationships['structural-element'].data.id,
@@ -174,9 +177,8 @@ export default {
         component(block) {
             if (block.attributes) {
                 return 'courseware-' + block.attributes["block-type"] + '-block';
-            } else {
-                console.debug(block);
             }
+            return null;
         },
         updateContent(blockAdder) {
             if(blockAdder.container.id === this.container.id) {