   Returns the Listener to allow manual closing and adjustments to
   message-handlers."
   [conn-spec message-handlers & subscription-commands]
-  `(with-new-listener (assoc (conns/conn-spec ~conn-spec)
-                        :pubsub-listener? true)
+  `(with-new-listener (assoc ~conn-spec :pubsub-listener? true)
 
      ;; Message handler (fn [message state])
      (fn [[_# source-channel# :as incoming-message#] msg-handlers#]


(defmacro with-conn "DEPRECATED: Use `wcar` instead."
  [connection-pool connection-spec & body]
  `(wcar {:pool ~connection-pool :spec ~connection-spec} ~@body))

      3. An atom containing any other optional listener state.

  Useful for pub/sub, monitoring, etc."
  [conn-spec handler initial-state & body]
  `(let [handler-atom# (atom ~handler)
         state-atom#   (atom ~initial-state)
         conn# (conns/make-new-connection
                (assoc (conns/conn-spec ~conn-spec) :listener? true))
         in#   (:in-stream conn#)]

     (future-call ; Thread to long-poll for messages
