diff --git a/include/class.dept.php b/include/class.dept.php
index 7abb372d1e9c16f75deb80b8ed60ee31a6a87c1b..d9d4c63093620fe086cb4762c7b6b360177db595 100644
--- a/include/class.dept.php
+++ b/include/class.dept.php
@@ -92,6 +92,24 @@ class Dept {
         return $this->email;
     }
 
+    /**
+     * getAlertEmail
+     *
+     * Fetches either the department email (for replies) if configured.
+     * Otherwise, the system alert email address is used.
+     */
+    function getAlertEmail() {
+        global $cfg;
+
+        if (!$this->email && ($id = $this->getEmailId())) {
+            $this->email = Email::lookup($id);
+        }
+        if (!$this->email && $cfg) {
+            $this->email = $cfg->getAlertEmail();
+        }
+        return $this->email;
+    }
+
     function getNumStaff() {
         return $this->ht['users'];
     }
diff --git a/include/class.ticket.php b/include/class.ticket.php
index 7aeabf55a31aed7682b5a8b1370f1b3979a67fb0..cb9d23dc469381db7901c171406283819b800edd 100644
--- a/include/class.ticket.php
+++ b/include/class.ticket.php
@@ -993,7 +993,7 @@ class Ticket {
         //Send alert to out sleepy & idle staff.
         if ($alertstaff
                 && $cfg->alertONNewTicket()
-                && ($email=$dept->getEmail())
+                && ($email=$dept->getAlertEmail())
                 && ($msg=$tpl->getNewTicketAlertMsgTemplate())) {
 
             $msg = $this->replaceVars($msg->asArray(), array('message' => $message));
@@ -1219,7 +1219,7 @@ class Ticket {
         $dept = $this->getDept();
         if(!$dept
                 || !($tpl = $dept->getTemplate())
-                || !($email = $dept->getEmail()))
+                || !($email = $dept->getAlertEmail()))
             return true;
 
         //recipients
@@ -1276,7 +1276,7 @@ class Ticket {
         //Get the message template
         if(($tpl = $dept->getTemplate())
                 && ($msg=$tpl->getOverdueAlertMsgTemplate())
-                && ($email = $dept->getEmail())) {
+                && ($email = $dept->getAlertEmail())) {
 
             $msg = $this->replaceVars($msg->asArray(),
                 array('comments' => $comments));
@@ -1473,7 +1473,7 @@ class Ticket {
         if(!$alert || !$cfg->alertONTransfer() || !($dept=$this->getDept()))
             return true; //no alerts!!
 
-         if (($email = $dept->getEmail())
+         if (($email = $dept->getAlertEmail())
                      && ($tpl = $dept->getTemplate())
                      && ($msg=$tpl->getTransferAlertMsgTemplate())) {
 
@@ -1701,7 +1701,7 @@ class Ticket {
                 'thread'=>$message);
         //If enabled...send alert to staff (New Message Alert)
         if($cfg->alertONNewMessage()
-                && ($email = $dept->getEmail())
+                && ($email = $dept->getAlertEmail())
                 && ($tpl = $dept->getTemplate())
                 && ($msg = $tpl->getNewMessageAlertMsgTemplate())) {
 
@@ -1958,7 +1958,7 @@ class Ticket {
         if(!$alert || !$cfg->alertONNewNote() || !($dept=$this->getDept()))
             return $note;
 
-        if (($email = $dept->getEmail())
+        if (($email = $dept->getAlertEmail())
                 && ($tpl = $dept->getTemplate())
                 && ($msg=$tpl->getNoteAlertMsgTemplate())) {