diff --git a/include/class.ticket.php b/include/class.ticket.php
index 7852ec09406cf57f812bc1ca5c8889ae3afb70cf..150b64c698ecb84ed6c371e90503858b4c002fb0 100644
--- a/include/class.ticket.php
+++ b/include/class.ticket.php
@@ -528,11 +528,15 @@ class Ticket {
     }
 
     function getLastMessage() {
+        if (!isset($this->last_message)) {
+            if($this->getLastMsgId())
+                $this->last_message =  Message::lookup(
+                    $this->getLastMsgId(), $this->getId());
 
-        if($this->getLastMsgId())
-            return Message::lookup($this->getLastMsgId(), $this->getId());
-
-        return Message::lastByTicketId($this->getId());
+            if (!$this->last_message)
+                $this->last_message = Message::lastByTicketId($this->getId());
+        }
+        return $this->last_message;
     }
 
     function getThread() {
@@ -694,6 +698,10 @@ class Ticket {
     function setLastMsgId($msgid) {
         return $this->lastMsgId=$msgid;
     }
+    function setLastMessage($message) {
+        $this->last_message = $message;
+        $this->setLastMsgId($message->getId());
+    }
 
     //DeptId can NOT be 0. No orphans please!
     function setDeptId($deptId) {
@@ -1542,7 +1550,7 @@ class Ticket {
         if(!($message = $this->getThread()->addMessage($vars, $errors)))
             return null;
 
-        $this->setLastMsgId($message->getId());
+        $this->setLastMessage($message);
 
         //Add email recipients as collaborators...
         if ($vars['recipients']
@@ -2496,7 +2504,7 @@ class Ticket {
                 && ($msg=$tpl->getNewTicketNoticeMsgTemplate())
                 && ($email=$dept->getEmail())) {
 
-            $message = $vars['message'];
+            $message = (string) $ticket->getLastMessage();
             if($response) {
                 $message .= ($cfg->isHtmlThreadEnabled()) ? "<br><br>" : "\n\n";
                 $message .= $response->getBody();