     requestIq: ->
         pubsubEl = new xmpp.Element('iq', type: @iqType()).
             c('pubsub', xmlns: @xmlns)
-        pubsubEl.cnode(@pubsubChild().root())
+        child = @pubsubChild()
+        if child instanceof Array
+            for el in child
+                pubsubEl.cnode el.root()
+        else
+            pubsubEl.cnode child.root()
         if @opts.actor
             actorEl = pubsubEl.c('actor', xmlns: NS.BUDDYCLOUD_V1)
             actorEl.attrs.type ?= @opts.actorType

        'set'

    pubsubChild: ->
        new xmpp.Element('subscribe', node: @opts.node, jid: @opts.actor)

    decodeReplyEl: (el) ->
        if el.is('subscription', @xmlns) and
           el.attrs.node is @opts.node
            @results.user ?= el.attrs.jid or @opts.actor
            @results.subscription ?= el.attrs.subscription or 'subscribed'

    localPushData: ->
        if @results.subscription is 'subscribed'

                user: @results.user
                listener: @opts.sender
                subscription: @results.subscription
                temporary: @results.temporary
            }]
        else
            []
