diff --git a/classes/table/delayed_courses_table.php b/classes/table/delayed_courses_table.php
index bd3dc9c7633713e7b4e1dc5d460947ef3eb102eb..e3f4d653c5f58bbd3a9170680177612bb8045c46 100644
--- a/classes/table/delayed_courses_table.php
+++ b/classes/table/delayed_courses_table.php
@@ -49,6 +49,7 @@ class delayed_courses_table extends \table_sql {
                 'FROM {tool_lifecycle_delayed_workf} dw ' .
                 'JOIN {tool_lifecycle_workflow} w ON dw.workflowid = w.id ' . // To make sure no outdated delays are counted.
                 'WHERE dw.delayeduntil >= :time ' .
+                'AND w.timeactive IS NOT NULL ' .
                 // TODO AND dw.workflowid IN $workflows
                 'GROUP BY courseid ' .
             ') maxtable ' .
@@ -137,7 +138,8 @@ class delayed_courses_table extends \table_sql {
     public function col_tools($row) {
         global $PAGE, $OUTPUT;
         $button = new \single_button(
-                new \moodle_url($PAGE->url, array('cid' => $row->courseid)),
+                new \moodle_url($PAGE->url,
+                        array('action' => 'delete', 'cid' => $row->courseid, 'sesskey' => sesskey())),
                 get_string('delete_delay', 'tool_lifecycle'));
         return $OUTPUT->render($button);
     }
diff --git a/delayedcourses.php b/delayedcourses.php
index 3f68672f7ff39a6e0ccf3b6847d9e36ac0ab2eaa..33fabc725bce74e5c8d68de3cf85e855af62bed5 100644
--- a/delayedcourses.php
+++ b/delayedcourses.php
@@ -33,6 +33,27 @@ require_capability('moodle/site:config', context_system::instance());
 
 admin_externalpage_setup('tool_lifecycle_delayed_courses');
 
+$action = optional_param('action', null, PARAM_ALPHANUMEXT);
+if ($action) {
+    if ($action == 'delete') {
+        global $DB;
+        require_sesskey();
+        $cid = required_param('cid', PARAM_INT);
+        $workflow = optional_param('workflow', null, PARAM_ALPHANUM);
+        if ($workflow) {
+            if (is_int($workflow)) {
+                $DB->delete_records('tool_lifecycle_delayed_workf', array('courseid' => $cid, 'workflowid' => $workflow));
+            } else if ($workflow == 'global') {
+                $DB->delete_records('tool_lifecycle_delayed', array('courseid' => $cid));
+            }
+        } else {
+            $DB->delete_records('tool_lifecycle_delayed', array('courseid' => $cid));
+            $DB->delete_records('tool_lifecycle_delayed_workf', array('courseid' => $cid));
+        }
+    }
+    redirect($PAGE->url);
+}
+
 $PAGE->set_url(new \moodle_url('/admin/tool/lifecycle/delayedcourses.php'));
 
 $PAGE->set_title(get_string('delayed_courses_header', 'tool_lifecycle'));
@@ -41,7 +62,6 @@ $PAGE->set_heading(get_string('delayed_courses_header', 'tool_lifecycle'));
 $table = new delayed_courses_table();
 $table->define_baseurl($PAGE->url);
 
-
 echo $OUTPUT->header();
 $table->out(100, false);
 echo $OUTPUT->footer();