diff --git a/include/class.task.php b/include/class.task.php
index d3a09b9b5bdea2789b762d72fbfb8512f52efca9..dcb19c81243bc34a73afe4b28e510aa2918259f0 100644
--- a/include/class.task.php
+++ b/include/class.task.php
@@ -59,7 +59,6 @@ class TaskModel extends VerySimpleModel {
 
             'ticket' => array(
                 'constraint' => array(
-                    'object_type' => "'T'",
                     'object_id' => 'Ticket.ticket_id',
                 ),
                 'null' => true,
@@ -535,8 +534,17 @@ class Task extends TaskModel implements RestrictedAccess, Threadable {
             $this->reopen();
             $this->closed = null;
 
-            $ecb = function ($t) {
+            $ecb = function ($t) use($thisstaff) {
                 $t->logEvent('reopened', false, null, 'closed');
+                if ($t->ticket) {
+                    $t->ticket->reopen();
+                    $vars = array(
+                            'title' => sprintf('Task %s Reopened',
+                                $t->getNumber()),
+                            'note' => __('Task reopened')
+                            );
+                    $t->ticket->logNote($vars['title'], $vars['note'], $thisstaff);
+                }
             };
             break;
         case 'closed':
@@ -553,8 +561,16 @@ class Task extends TaskModel implements RestrictedAccess, Threadable {
 
             $this->close();
             $this->closed = SqlFunction::NOW();
-            $ecb = function($t) {
+            $ecb = function($t) use($thisstaff) {
                 $t->logEvent('closed');
+                if ($t->ticket) {
+                    $vars = array(
+                            'title' => sprintf('Task %s Closed',
+                                $t->getNumber()),
+                            'note' => __('Task closed')
+                            );
+                    $t->ticket->logNote($vars['title'], $vars['note'], $thisstaff);
+                }
             };
             break;
         default: