--- bounce.module.orig	2013-07-22 15:13:12.000000000 -0600
+++ bounce.module	2013-07-22 15:16:21.000000000 -0600
@@ -721,6 +721,9 @@
  */
 function bounce_mail_remove_blocked_addresses($to) {
   $addresses = explode(',', $to);
+  if(!is_array($addresses)) {
+    $addresses = array();
+  }
   $blocked_addresses = bounce_determine_blocked_addresses($addresses);
   return implode(',', array_diff($addresses, $blocked_addresses));
 }
@@ -739,19 +742,24 @@
  *   supplied.
  */
 function bounce_determine_blocked_addresses($addresses) {
-  $destinations = array();
-  foreach ($addresses as $address) {
-    $emails = bounce_unique_mails_from_text($address);
-    if ($emails) {
-      $destinations[array_shift($emails)] = $address;
+  try {
+    $destinations = array();
+    foreach ($addresses as $address) {
+      $emails = bounce_unique_mails_from_text($address);
+      if ($emails) {
+        $destinations[array_shift($emails)] = $address;
+      }
     }
+    $blocked_mails = db_select('bounce_blocked', 'b')
+      ->fields('b', array('mail'))
+      ->condition('b.mail', array_keys($destinations), 'IN')
+      ->execute()
+      ->fetchCol();
+    $blocked_destinations = array_intersect_key($destinations, array_flip($blocked_mails));
+  } catch (Exception $e) {
+    watchdog('bounce', $e->getMessage(), array(), WATCHDOG_ERROR);
+    return array();
   }
-  $blocked_mails = db_select('bounce_blocked', 'b')
-    ->fields('b', array('mail'))
-    ->condition('b.mail', array_keys($destinations), 'IN')
-    ->execute()
-    ->fetchCol();
-  $blocked_destinations = array_intersect_key($destinations, array_flip($blocked_mails));
   return array_values($blocked_destinations);
 }
 
