diff --git a/join.php b/join.php
index d0e14037811228caf12b1c91f838019359db2f96..d164759a22ff8951dbfe3b64b2781c79c7109382 100644
--- a/join.php
+++ b/join.php
@@ -17,7 +17,7 @@ $groupid  = required_param('groupid', PARAM_INT);
 $sesskey  = required_param('sesskey', PARAM_ALPHANUM);
 
 
-global $CFG, $USER, $DB;
+global $CFG, $USER, $DB, $OUTPUT;
 
 if (! $cm = get_coursemodule_from_id('adobeconnect', $id)) {
     error('Course Module ID was incorrect');
@@ -44,19 +44,18 @@ if (isset($CFG->adobeconnect_email_login) and !empty($CFG->adobeconnect_email_lo
 }
 
 if (0 != $cm->groupmode){
-
     if (empty($groupid)) {
         $groups = groups_get_user_groups($course->id, $usrobj->id);
-
         if (array_key_exists(0, $groups)) {
             $groupid = current($groups[0]);
         }
-
         if (empty($groupid)) {
             $groupid = 0;
-            notify(get_string('usergrouprequired', 'adobeconnect'));
-            print_footer($course);
-            die();
+            echo $OUTPUT->header();
+            echo '<p>&nbsp;<p>';
+            echo $OUTPUT->notification(get_string('usergrouprequired', 'adobeconnect'));
+            echo $OUTPUT->footer();
+            return;
         }
 
     }
diff --git a/joinrecording.php b/joinrecording.php
index 80ddbb0e0bb827df1b20e8946e994cdffd8bb64e..fcfec7794ca5f71c9555a029d5b2c22465425120 100644
--- a/joinrecording.php
+++ b/joinrecording.php
@@ -19,8 +19,9 @@ $groupid    = required_param('groupid', PARAM_INT);
 // DFNVC
 $recordingscoid = required_param('recording', PARAM_INT);
 $convert = optional_param('convert', null, PARAM_INT);
+$edit = optional_param('edit', null, PARAM_INT);
 
-global $CFG, $USER, $DB;
+global $CFG, $USER, $DB, $OUTPUT;
 
 // Do the usual Moodle setup
 if (! $cm = get_coursemodule_from_id('adobeconnect', $id)) {
@@ -65,9 +66,6 @@ $aconnect   = aconnect_login();
 //$aconnect->request_http_header_login(1, $login);
 //$adobesession = $aconnect->get_cookie();
 $user_session_cookie = $aconnect->user_session_cookie($login);
-//notify('test: ' . htmlspecialchars($aconnect->_xmlrequest));
-//notify('test: ' . htmlspecialchars($aconnect->_xmlresponse));
-//notify('test: ' . $adobesession);
 aconnect_logout($aconnect);
 
 
@@ -167,11 +165,6 @@ $aconnect   = aconnect_login();
 $recording  = array();
 $fldid      = aconnect_get_folder($aconnect, 'content');
 
-//notify('test: ' . htmlspecialchars($aconnect->_xmlrequest));
-//notify('test: ' . htmlspecialchars($aconnect->_xmlresponse));
-//notify('test: ' . $adobesession);
-
-
 //$data = aconnect_get_recordings($aconnect, $fldid, $meetscoid->meetingscoid);
 $data = '';
 
@@ -186,22 +179,19 @@ if (!empty($data2)) {
      $recording[] = $data2;
 }
 
-// DFNVC
+//
+// DFNconf
 //
 $meetfldscoid = aconnect_get_meeting_folder($aconnect);
-//notify('test: ' . htmlspecialchars($aconnect->_xmlrequest));
-//notify('test: ' . htmlspecialchars($aconnect->_xmlresponse));
-
 
 $recordingurlpath = aconnect_get_recording_urlpath($aconnect, $meetscoid->meetingscoid, $recordingscoid);
-//notify('test: ' . htmlspecialchars($aconnect->_xmlrequest));
-//notify('test: ' . htmlspecialchars($aconnect->_xmlresponse));
-//notify('test: ' . $aconnect->get_cookie());
-//return;
 
 if (empty($recordingurlpath) and confirm_sesskey()) {
-    notify('error getting recording urlpath');
-    die();
+    echo $OUTPUT->header();
+    echo '<p>&nbsp;<p>';
+    echo $OUTPUT->notification('Aufzeichnung wurde auf dem DFNconf Meeting-Server <b>' . $CFG->adobeconnect_meethost . '</b> nicht gefunden !');
+    echo $OUTPUT->footer();
+    return;
 }
 aconnect_logout($aconnect);
 
@@ -215,12 +205,15 @@ if (!empty($CFG->adobeconnect_port) and (80 != $CFG->adobeconnect_port)) {
     $port = ':' . $CFG->adobeconnect_port;
 }
 
-//redirect($protocol . $CFG->adobeconnect_meethost . $port
-//                     . $recording->url . '?session=' . $adobesession);
-// DFNVC
+//
+// DFNconf
+//
 if ($convert == 'true') {
     redirect($protocol . $CFG->adobeconnect_meethost . $port . $recordingurlpath . '?pbMode=offline&session=' . $user_session_cookie);
 }
+elseif ($edit == 'true') {
+    redirect($protocol . $CFG->adobeconnect_meethost . $port . $recordingurlpath . '?pbMode=edit&session=' . $user_session_cookie);
+}
 else {
     redirect($protocol . $CFG->adobeconnect_meethost . $port . $recordingurlpath . '?session=' . $user_session_cookie);
 }
diff --git a/lang/de/adobeconnect.php b/lang/de/adobeconnect.php
index 2d802138be042983a76bf4c954006f5d677e1b53..0397edd1a6a6b3d95fc3682eccab63649ec62ae5 100644
--- a/lang/de/adobeconnect.php
+++ b/lang/de/adobeconnect.php
@@ -79,6 +79,8 @@ $string['record_delete'] = 'Aufzeichnung löschen';
 $string['confirm_record_delete'] = 'Wollen Sie die Aufzeichnung "{$a}" wirklich löschen ?';
 $string['recording_error'] = 'Das Meeting kann nicht gelöscht werden, da es noch Aufzeichnungen enthält !';
 
+$string['record_edit'] = 'Bearbeiten';
+
 $string['removeparticipant'] = 'Entfernen';
 $string['removepresenter'] = 'Entfernen';
 $string['roletoassign'] = 'Zugewiesene Rolle';
diff --git a/lang/en/adobeconnect.php b/lang/en/adobeconnect.php
index 1bb9cbf39ae2045a2d72ee65b01c87808b997b3d..288d6745e6d971d22db1c428b94552756065c778 100644
--- a/lang/en/adobeconnect.php
+++ b/lang/en/adobeconnect.php
@@ -80,6 +80,8 @@ $string['record_delete'] = 'Delete recording';
 $string['confirm_record_delete'] = 'Do you really want to delete the recroding {$a}?';
 $string['recording_error'] = 'The meeting cannot be deleted because it still contains recordings!';
 
+$string['record_edit'] = 'Edit';
+
 $string['removeparticipant'] = 'Remove';
 $string['removepresenter'] = 'Remove';
 $string['roletoassign'] = 'Role to assign';
diff --git a/renderer.php b/renderer.php
index f5e4f95e8babf558b141437a744a89305396b58c..e6b4db1d7408a485d8111ab1c174f4587d65e4d5 100644
--- a/renderer.php
+++ b/renderer.php
@@ -111,7 +111,7 @@ class mod_adobeconnect_renderer extends plugin_renderer_base {
                     // recording url
                     $url = $CFG->wwwroot . '/mod/adobeconnect/joinrecording.php?id=' . $cmid . '&recording='. $recording_scoid . '&groupid='. $groupid . '&sesskey=' . $USER->sesskey;
                     // recording name
-                    $name = '<img src="' . $CFG->wwwroot .'/pix/e/insert_edit_video.svg"/>&nbsp;&nbsp;';
+                    $name = '<img src="' . $CFG->wwwroot .'/pix/e/insert_edit_video.svg" height="24" width="24"/>&nbsp;&nbsp;';
                     $name .= html_writer::link($url, format_string($recording->name), array('target' => '_blank','title'=>get_string('record_play','adobeconnect')));
                     // start date
                     $startdate = format_string($recording->startdate);
@@ -130,7 +130,10 @@ class mod_adobeconnect_renderer extends plugin_renderer_base {
                         $converturl = $url . '&convert=true';
                         $param = array('target' => '_blank','title'=>get_string('record_convert','adobeconnect'));
                         $action = html_writer::link($converturl,get_string('record_convert','adobeconnect'),$param);
-                        array_push($row, $action);
+                        $editurl = $url . '&edit=true';
+                        $editparam = array('target' => '_blank','title'=>get_string('record_edit','adobeconnect'));                        
+                        $editaction = html_writer::link($editurl,get_string('record_edit','adobeconnect'),$editparam);                        
+                        array_push($row, $action . '&nbsp;&nbsp;|&nbsp;&nbsp;' . $editaction);
                         // Löschen
                         $delurl = "/mod/adobeconnect/delrecording.php?id=$cmid&recording=$recording_scoid";
                         $a = $recording->name;