diff --git a/lib/classes/JsonApi/Routes/Courseware/StructuralElementsCreate.php b/lib/classes/JsonApi/Routes/Courseware/StructuralElementsCreate.php
index 8f1c8bd84432a4e1845fd5873f82bc524110e4fa..bdb75d1ab498daf54a27c58ec070f5d011be9190 100755
--- 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 4b3d7e9f85542efa549572aed47136be5d6afe2a..f0a9cf352b265d9488a64d8ea2195f04712c9786 100755
--- a/lib/models/Courseware/StructuralElement.php
+++ b/lib/models/Courseware/StructuralElement.php
@@ -225,20 +225,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) {