diff -uNr a/logbot/logbot.lisp b/logbot/logbot.lisp
--- a/logbot/logbot.lisp 34c09aae0020f81b9dd9a9120dae84c0e996b578041e837785e814409f69d0d587a21c0c1454c6e39039c8ca3fd135092d4efd006f39f0e47ac87f0314f6f92d
+++ b/logbot/logbot.lisp 19835de2ebf3dc6a70796058ba4a79a4e4cf17ca993b73a97e821a0056d717285f5d1e3a40ecc0ef03efd1fdfaeeed7b5ed2fb43113866cb12b849091753b5cb
@@ -1,17 +1,17 @@
 (in-package #:logbot)
 
 
-(defun get-and-purge-outbox-messages (db)
+(defun get-and-purge-outbox-messages (db target)
   (postmodern:with-connection db
     (postmodern:query
      "with deleted as (
           delete from outbox
-          returning target, message, queued_at
+          where target = $1
+          returning message, queued_at
       )
-      select target,
-             message
+      select message
       from deleted
-      order by queued_at"
+      order by queued_at" target
      :rows)))
 
 (defun make-log-entry (db target message host source user)
@@ -31,7 +31,7 @@
    (db :reader logbot-db :initarg :db)))
 
 (defmethod ircbot-connect :after ((bot logbot))
-  (let ((conn (ircbot-connection bot)))    
+  (let ((conn (ircbot-connection bot)))
     (add-hook conn 'irc-mode-message (lambda (message)
                                        (logbot-check-mode bot message)))
     (add-hook conn 'irc-privmsg-message (lambda (message)
@@ -57,18 +57,18 @@
   (if (= 3 (length (arguments message)))
       (destructuring-bind (channel mode nick) (arguments message)
         (when (and (string= (host message) "services.")
-                   (string= channel (ircbot-channel bot))
+                   (member channel (ircbot-channels bot) :test #'string=)
                    (or (string= mode "+o") (string= mode "+v"))
                    (string= nick (ircbot-nick bot)))
 
           (when (null (logbot-pg-thread bot))
             (logbot-start-pg-thread bot)
-            (logbot-send-outbox bot))))))
+            (logbot-send-outbox bot channel))))))
 
-(defmethod logbot-send-outbox ((bot logbot))
+(defmethod logbot-send-outbox ((bot logbot) target)
   (loop
-     for (target message)
-     in (get-and-purge-outbox-messages (logbot-db bot))
+     for (message)
+     in (get-and-purge-outbox-messages (logbot-db bot) target)
      do (ircbot-send-message bot target message)))
 
 (defmethod logbot-start-pg-thread ((bot logbot))
@@ -78,16 +78,19 @@
            (postmodern:with-connection (logbot-db bot)
              (postmodern:execute "listen outbox_new_message")
              (loop
-                (if (string= (cl-postgres:wait-for-notification postmodern:*database*)
-                             "outbox_new_message")
-                    (logbot-send-outbox bot)))))
+                (multiple-value-bind (channel payload pid)
+                    (cl-postgres:wait-for-notification postmodern:*database*)
+                  (declare (ignore pid))
+                  (if (string= channel
+                               "outbox_new_message")
+                      (logbot-send-outbox bot payload))))))
          :name "logbot-pg")))
 
-(defun make-logbot (server port nick password channel db)
+(defun make-logbot (server port nick password channels db)
   (make-instance 'logbot
                  :server server
                  :port port
                  :nick nick
                  :password password
-                 :channel channel
+                 :channels channels
                  :db db))
diff -uNr a/logbot/logbot.sql b/logbot/logbot.sql
--- a/logbot/logbot.sql dbc265a63c34c6b682694c8776aa4640c83ba92dca5400f0bd393f6a9eb5d3672011c234c3d04a7ad074f3fce560d71d78201f4bbcb506c12ed6cc90d3c59017
+++ b/logbot/logbot.sql 83bd0ba610a945ca03644bb5ea7304ac61d04622920c42dea741eae7ad22c10f6a2b00994832898f6706d2b1608a23acc26fc2af1cae17837ee7739eae36797e
@@ -28,7 +28,7 @@
 create trigger log_insert_notify_trigger
 after insert on log
 for each row execute procedure log_insert_notify ();
-    
+
 create table outbox (
     id serial primary key,
     target text not null,
@@ -38,7 +38,7 @@
 
 create or replace function outbox_insert_notify () returns trigger as $$
     begin
-        perform pg_notify('outbox_new_message', NEW.id::text);
+        perform pg_notify('outbox_new_message', NEW.target::text);
         return NEW;
     end;
 $$ language plpgsql;
diff -uNr a/logbot/package.lisp b/logbot/package.lisp
--- a/logbot/package.lisp 29a3142e5a5a5b814921b49c16571b2d0359cdca2dfdc9ca4463734f066b1e087a4ececb6341f1667ef26f6a97b0b8ce326cedaf2539d2cfd64ca4c3fb6551df
+++ b/logbot/package.lisp ed9e56e8bdcca12fa144c095493602ff389977ed28cf6df0185b474eefd151cc0fe211824d7de480d4499a9c013144ead41cc962a8b96dea7b84b2f68bab3569
@@ -11,10 +11,9 @@
            :ircbot-disconnect
            :ircbot-reconnect
            :ircbot-connection
-           :ircbot-channel
+           :ircbot-channels
            :ircbot-send-message
            :ircbot-server
            :ircbot-port
            :ircbot-nick
            :ircbot-lag))
-