diff --git a/include/class.mailfetch.php b/include/class.mailfetch.php
index efbe8f2f0511bf1467f547e89bd36a5545bbefd1..73d07a6f90114829a96f8951120d0af11712c026 100644
--- a/include/class.mailfetch.php
+++ b/include/class.mailfetch.php
@@ -584,8 +584,10 @@ class MailFetcher {
             // Fetch deliver status report
             $vars['message'] = $this->getDeliveryStatusMessage($mid);
             $vars['thread-type'] = 'N';
+            $vars['flags']['bounce'] = true;
         }
         else {
+            $vars['flags']['bounce'] = TicketFilter::isBounce($info);
             $vars['message']=Format::stripEmptyLines($this->getBody($mid));
         }
 
diff --git a/include/class.mailparse.php b/include/class.mailparse.php
index 37f9b3bf2779869d565d6bccd946eb8fb9e685cc..c240d4efb06ad8a7cd7aed7ce1859696012216b8 100644
--- a/include/class.mailparse.php
+++ b/include/class.mailparse.php
@@ -532,12 +532,14 @@ class EmailDataParser {
             // Fetch deliver status report
             $data['message'] = $parser->getDeliveryStatusMessage();
             $data['thread-type'] = 'N';
+            $data['flags']['bounce'] = true;
         }
         else {
             // Typical email
             $data['message'] = Format::stripEmptyLines($parser->getBody());
             $data['in-reply-to'] = $parser->struct->headers['in-reply-to'];
             $data['references'] = $parser->struct->headers['references'];
+            $data['flags']['bounce'] = TicketFilter::isBounce($data['header']);
         }
 
         $data['subject'] = $parser->getSubject();
diff --git a/include/class.ticket.php b/include/class.ticket.php
index 8894b817fb6ffe3bae3a067b3d2c00722237c3d3..3a6b7586c55368600a5e2448aa8fe46b657917dd 100644
--- a/include/class.ticket.php
+++ b/include/class.ticket.php
@@ -1375,9 +1375,10 @@ class Ticket {
 
         if(!$alerts) return $message; //Our work is done...
 
-        $autorespond = true;
-        if ($autorespond && $message->isBounceOrAutoReply())
-            $autorespond=false;
+        // Do not auto-respond to bounces and other auto-replies
+        $autorespond = isset($vars['flags']) ? !$vars['flags']['bounce'] : true;
+        if ($autorespond && $message->isAutoReply())
+            $autorespond = false;
 
         $this->onMessage($autorespond, $message); //must be called b4 sending alerts to staff.
 
@@ -1605,6 +1606,10 @@ class Ticket {
         if(!($note=$this->getThread()->addNote($vars, $errors)))
             return null;
 
+        if (isset($vars['flags']) && $vars['flags']['bounce'])
+            // No alerts for bounce emails
+            $alert = false;
+
         //Set state: Error on state change not critical!
         if(isset($vars['state']) && $vars['state']) {
             if($this->setState($vars['state']))
@@ -2174,6 +2179,8 @@ class Ticket {
 
         # Messages that are clearly auto-responses from email systems should
         # not have a return 'ping' message
+        if (isset($vars['flags']) && $vars['flags']['bounce'])
+            $autorespond = false;
         if ($autorespond && $message->isAutoReply())
             $autorespond = false;