diff --git a/resources/vue/components/courseware/ManagerApp.vue b/resources/vue/components/courseware/ManagerApp.vue
index ed493e70b2ca93f266aafbec6b1e2616039245e6..777c5af052f0e5a5bc78ca747e11f889c653ea9c 100755
--- a/resources/vue/components/courseware/ManagerApp.vue
+++ b/resources/vue/components/courseware/ManagerApp.vue
@@ -23,7 +23,6 @@ export default {
         async rebuildStructure() {
             // compute order of structural elements once more
             await this.buildStructure();
-            console.debug("built structure")
 
             // throw away stale cache
             this.invalidateStructureCache();
diff --git a/resources/vue/store/courseware/courseware.module.js b/resources/vue/store/courseware/courseware.module.js
index 949b574a237baccbf275526b01d31943d4f71374..be6ea2732de9d45b4f6e1646e587eab32e94eb96 100755
--- a/resources/vue/store/courseware/courseware.module.js
+++ b/resources/vue/store/courseware/courseware.module.js
@@ -317,14 +317,16 @@ export const actions = {
             // console.log(resp);
         });
     },
-    copyStructuralElement({ dispatch, getters }, { parentId, element }) {
+    async copyStructuralElement({ dispatch, getters, rootGetters }, { parentId, element }) {
         const copy = { data: { parent_id: parentId, }, };
 
-        return state.httpClient.post(`courseware-structural-elements/${element.id}/copy`, copy)
-            .then(({ data }) => {
-                const id = data.data.id;
-                dispatch('loadStructuralElement', id);
-            });
+        const result = await state.httpClient.post(`courseware-structural-elements/${element.id}/copy`, copy);
+        const id = result.data.data.id;
+        await dispatch('loadStructuralElement', id);
+
+        const newElement = rootGetters['courseware-structural-elements/byId']({ id });
+
+        return dispatch('courseware-structure/loadDescendants', { root: newElement });
     },
 
     lockObject({ dispatch, getters }, { id, type }) {