Index: subscriptions.module
===================================================================
--- subscriptions.module	(revision 426)
+++ subscriptions.module	(working copy)
@@ -209,6 +209,10 @@
   if (is_array($event['load_args'])) {
     $event['load_args'] = serialize($event['load_args']);
   }
+  if (!empty($event['noqueue_uids'])) {
+    // Allow hook_subscriptions_queue_alter() modules to set uids that won't get any notifications queued:
+    $noqueue_uids_where = "s.recipient_uid NOT IN (". implode(', ', array_fill(0, count($event['noqueue_uids']), '%d')) .")";
+  }
 
   foreach (module_implements('subscriptions') as $subs_module) {
     $subs_module_query = module_invoke($subs_module, 'subscriptions', 'queue', $event);
@@ -231,6 +235,10 @@
           $where[] = "s.recipient_uid != %d";
           $args[] = $user->uid;
         }
+        if (!empty($event['noqueue_uids'])) {
+          $where[] = $noqueue_uids_where;
+          $args = array_merge($args, $event['noqueue_uids']);
+        }
         $conditions = implode(' AND ', $where);
         $sql = "
           INSERT INTO {subscriptions_queue} (uid, name, mail, language, module, field, value, author_uid, send_interval, digest, last_sent, load_function, load_args, is_new)
