diff --git a/app/controllers/course/lti.php b/app/controllers/course/lti.php
index 7ed8586cb27d4f4a50a5024fd98e69f2eea593f8..28bf218b84809f54c5e992aef8939db47ba4efac 100644
--- a/app/controllers/course/lti.php
+++ b/app/controllers/course/lti.php
@@ -146,6 +146,8 @@ class Course_LtiController extends StudipController
      */
     public function edit_action($position = '')
     {
+        $this->lti_data = new LtiData();
+
         if ($position !== '') {
             $this->lti_data = LtiData::findByCourseAndPosition($this->course_id, $position);
         }
diff --git a/app/views/course/lti/edit.php b/app/views/course/lti/edit.php
index 4dc2b59f287fa21ba9e31363fa3f329c5f2a3235..1812bf25397ad282afb5fe9c26123489e9cee126 100644
--- a/app/views/course/lti/edit.php
+++ b/app/views/course/lti/edit.php
@@ -1,4 +1,11 @@
-<form class="default" action="<?= $controller->link_for('course/lti/save', isset($lti_data) ? $lti_data->position : '') ?>" method="post">
+<?php
+/**
+ * @var Course_LtiController $controller
+ * @var LtiData $lti_data
+ * @var LtiTool[] $tools
+ */
+?>
+<form class="default" action="<?= $controller->link_for('course/lti/save', $lti_data->isNew() ? '' : $lti_data->position) ?>" method="post">
     <?= CSRFProtection::tokenTag() ?>
     <fieldset>
         <legend>
@@ -9,12 +16,12 @@
             <span class="required">
                 <?= _('Titel') ?>
             </span>
-            <input type="text" name="title" value="<?= htmlReady(isset($lti_data) ? $lti_data->title : '') ?>" required>
+            <input type="text" name="title" value="<?= htmlReady($lti_data->title) ?>" required>
         </label>
 
         <label>
             <?= _('Beschreibung') ?>
-            <textarea name="description" class="add_toolbar wysiwyg"><?= wysiwygReady(isset($lti_data) ? $lti_data->description : '') ?></textarea>
+            <textarea name="description" class="add_toolbar wysiwyg"><?= wysiwygReady($lti_data->description) ?></textarea>
         </label>
 
         <label>
@@ -27,7 +34,7 @@
                         <? endif ?>
                         <?= $lti_data->tool_id == $tool->id ? 'selected' : '' ?>><?= htmlReady($tool->name) ?></option>
                 <? endforeach ?>
-                <option value="0" <?= isset($lti_data) && $lti_data->tool_id == 0 ? 'selected' : '' ?>><?= _('Zugangsdaten selbst eingeben...') ?></option>
+                <option value="0" <?= !$lti_data->tool_id ? 'selected' : '' ?>><?= _('Zugangsdaten selbst eingeben...') ?></option>
             </select>
         </label>
 
@@ -35,7 +42,7 @@
             <label>
                 <?= _('URL der Anwendung (optional)') ?>
                 <?= tooltipIcon(_('Sie können direkt auf eine URL in der Anwendung verlinken.')) ?>
-                <input type="text" name="custom_url" value="<?= htmlReady(isset($lti_data) ? $lti_data->launch_url : '') ?>">
+                <input type="text" name="custom_url" value="<?= htmlReady($lti_data->launch_url) ?>">
             </label>
         </div>
 
@@ -43,36 +50,36 @@
             <label>
                 <?= _('URL der Anwendung') ?>
                 <?= tooltipIcon(_('Die Betreiber dieses Tools müssen Ihnen eine URL und Zugangsdaten (Consumer-Key und Consumer-Secret) mitteilen.')) ?>
-                <input type="text" name="launch_url" value="<?= htmlReady(isset($lti_data) ? $lti_data->launch_url : '') ?>">
+                <input type="text" name="launch_url" value="<?= htmlReady($lti_data->launch_url) ?>">
             </label>
 
             <label>
                 <?= _('Consumer-Key des LTI-Tools') ?>
-                <input type="text" name="consumer_key" value="<?= htmlReady(isset($lti_data) ? $lti_data->options['consumer_key'] : '') ?>">
+                <input type="text" name="consumer_key" value="<?= htmlReady($lti_data->options['consumer_key'] ?? '') ?>">
             </label>
 
             <label>
                 <?= _('Consumer-Secret des LTI-Tools') ?>
-                <input type="text" name="consumer_secret" value="<?= htmlReady(isset($lti_data) ? $lti_data->options['consumer_secret'] : '') ?>">
+                <input type="text" name="consumer_secret" value="<?= htmlReady($lti_data->options['consumer_secret'] ?? '') ?>">
             </label>
 
             <label>
                 <?= _('OAuth Signatur Methode des LTI-Tools') ?>
                 <select name="oauth_signature_method">
                     <option value="sha1">HMAC-SHA1</option>
-                    <option value="sha256" <?= isset($lti_data) && $lti_data->options['oauth_signature_method'] === 'sha256' ? 'selected' : '' ?>>HMAC-SHA256</option>
+                    <option value="sha256" <?= isset($lti_data->options['oauth_signature_method']) && $lti_data->options['oauth_signature_method'] === 'sha256' ? 'selected' : '' ?>>HMAC-SHA256</option>
                 </select>
             </label>
 
             <label>
-                <input type="checkbox" name="send_lis_person" value="1" <?= isset($lti_data) && $lti_data->options['send_lis_person'] ? ' checked' : '' ?>>
+                <input type="checkbox" name="send_lis_person" value="1" <?= !empty($lti_data->options['send_lis_person']) ? ' checked' : '' ?>>
                 <?= _('Nutzerdaten an LTI-Tool senden') ?>
                 <?= tooltipIcon(_('Nutzerdaten dürfen nur an das externe Tool gesendet werden, wenn es keine Datenschutzbedenken gibt. Mit Setzen des Hakens bestätigen Sie, dass die Übermittlung der Daten zulässig ist.')) ?>
             </label>
         </div>
 
         <label>
-            <input type="checkbox" name="document_target" value="iframe" <?= isset($lti_data) && $lti_data->options['document_target'] == 'iframe' ? ' checked' : '' ?>>
+            <input type="checkbox" name="document_target" value="iframe" <?= isset($lti_data->options['document_target']) && $lti_data->options['document_target'] === 'iframe' ? ' checked' : '' ?>>
             <?= _('Anzeige im IFRAME auf der Seite') ?>
             <?= tooltipIcon(_('Normalerweise wird das externe Tool in einem neuen Fenster angezeigt. Aktivieren Sie diese Option, wenn die Anzeige stattdessen in einem IFRAME erfolgen soll.')) ?>
         </label>
@@ -80,7 +87,7 @@
         <label>
             <?= _('Zusätzliche LTI-Parameter') ?>
             <?= tooltipIcon(_('Ein Wert pro Zeile, Beispiel: Review:Chapter=1.2.56')) ?>
-            <textarea name="custom_parameters"><?= htmlReady(isset($lti_data) && $lti_data->options['custom_parameters']) ?></textarea>
+            <textarea name="custom_parameters"><?= htmlReady($lti_data->options['custom_parameters'] ?? '') ?></textarea>
         </label>
     </fieldset>