diff --git a/lib/classes/JsonApi/Routes/Courseware/StructuralElementsCreate.php b/lib/classes/JsonApi/Routes/Courseware/StructuralElementsCreate.php
index 8f1c8bd84432a4e1845fd5873f82bc524110e4fa..bdb75d1ab498daf54a27c58ec070f5d011be9190 100644
--- a/lib/classes/JsonApi/Routes/Courseware/StructuralElementsCreate.php
+++ b/lib/classes/JsonApi/Routes/Courseware/StructuralElementsCreate.php
@@ -79,7 +79,7 @@ class StructuralElementsCreate extends JsonApiController
             'editor_id' => $user->id,
             'edit_blocker_id' => '',
             'title' => self::arrayGet($json, 'data.attributes.title', ''),
-            'purpose' => self::arrayGet($json, 'data.attributes.purpose', 'content'),
+            'purpose' => $parent->purpose,
             'payload' => self::arrayGet($json, 'data.attributes.payload', ''),
             'position' => $parent->countChildren()
         ]);
diff --git a/lib/models/Courseware/StructuralElement.php b/lib/models/Courseware/StructuralElement.php
index f518cc1600592d76687844d9d901665d4522bf0b..5b834e9cd97a7ba3e730c0a35d3c9972c7faf833 100644
--- a/lib/models/Courseware/StructuralElement.php
+++ b/lib/models/Courseware/StructuralElement.php
@@ -227,20 +227,23 @@ class StructuralElement extends \SimpleORMap
             case 'course':
                 $hasEditingPermission = $this->hasEditingPermission($user);
                 if ($this->isTask()) {
-                    // TODO: Was tun wir, wenn dieses Strukturelement purpose=task aber keinen Task hat?
-                    if (!$this->task) {
-                        return false;
+                    $task = $this->task;
+                    if (!$task) {
+                        $task = $this->findParentTask();
+                        if (!$task) {
+                            return false;
+                        }
                     }
 
                     if ($hasEditingPermission) {
                         return false;
                     }
 
-                    if ($this->task->isSubmitted()) {
+                    if ($task->isSubmitted()) {
                         return false;
                     }
 
-                    return $this->task->userIsASolver($user);
+                    return $task->userIsASolver($user);
                 }
 
                 if ($hasEditingPermission) {