diff --git a/CRM/Mailing/Event/BAO/Delivered.php b/CRM/Mailing/Event/BAO/Delivered.php
index f14176652be68660b73d0cf7c9e9c6af68264bec..477faa61da686ab02268e761919cd4289bce8879 100644
--- a/CRM/Mailing/Event/BAO/Delivered.php
+++ b/CRM/Mailing/Event/BAO/Delivered.php
@@ -275,6 +275,7 @@ class CRM_Mailing_Event_BAO_Delivered extends CRM_Mailing_Event_DAO_Delivered {
       ->createWithColumns('id int primary key, reset_date datetime');
     $temporaryTableName = $temporaryTable->getName();
 
+    // also exclude on_hold = opt-out (2)
     $query = "
             INSERT INTO {$temporaryTableName} (id, reset_date)
             SELECT      civicrm_email.id as email_id,
@@ -288,6 +289,7 @@ class CRM_Mailing_Event_BAO_Delivered extends CRM_Mailing_Event_DAO_Delivered {
               AND       civicrm_mailing_job.status = 'Complete'
               AND       civicrm_mailing_job.end_date BETWEEN DATE_SUB(NOW(), INTERVAL $maxDays day) AND DATE_SUB(NOW(), INTERVAL $minDays day)
               AND       (civicrm_email.reset_date IS NULL OR civicrm_email.reset_date < civicrm_mailing_job.start_date)
+              AND       civicrm_email.on_hold != 2
             GROUP BY    civicrm_email.id
          ";
     CRM_Core_DAO::executeQuery($query);