diff --git a/include/ajax.tickets.php b/include/ajax.tickets.php
index 3d93e9a9cf3585d38189e8c705dafe54246fa2aa..bb01d52f9deb01b6952da4da92bb6b98f2722d80 100644
--- a/include/ajax.tickets.php
+++ b/include/ajax.tickets.php
@@ -767,7 +767,10 @@ class TicketsAjaxAPI extends AjaxController {
         if (!($status= TicketStatus::lookup($_REQUEST['status_id'])))
             $errors['status_id'] = sprintf('%s %s',
                     __('Unknown or invalid'), __('status'));
-        elseif (!$errors) {
+        elseif ($status->getId() == $ticket->getStatusId())
+            $errors['err'] = sprintf(__('Ticket already set to  %s
+                        status'), __($status->getName()));
+        else {
             // Make sure the agent has permission to set the status
             switch(mb_strtolower($status->getState())) {
                 case 'open':
@@ -796,14 +799,25 @@ class TicketsAjaxAPI extends AjaxController {
             }
         }
 
-        if ($ticket->setStatus($status, $_REQUEST['comments'])) {
+        if (!$errors && $ticket->setStatus($status, $_REQUEST['comments'])) {
             $_SESSION['::sysmsgs']['msg'] = sprintf(
                     __('Successfully updated status to %s'),
                     $status->getName());
             Http::response(201, 'Successfully processed');
+        } elseif (!$errors['err']) {
+            $errors['err'] =  __('Error updating ticket status');
         }
 
-        $errors['err'] = __('Error updating ticket status');
+
+        $state = $status ? $status->getState() : $state;
+        $verb = TicketStateField::getVerb($state);
+
+        $info['action'] = sprintf('#tickets/%d/status/%s', $ticket->getId(), $state);
+        $info['title'] = sprintf('%s %s #%s',
+                $verb ?: $state,
+                __('Ticket'), $ticket->getNumber());
+        $info['status_id'] = $_REQUEST['status_id'] ?: 0;
+        $info['comments'] = Format::htmlchars($_REQUEST['comments']);
         $info['errors'] = $errors;
         return self::_setStatus($state, $info);
     }