             do (key,group) =>
                 # we don't need rewind buffers for stream groups, but we do
                 # need sources.
-                rpc.request "group_sources", key:key, (err) =>
+                rpc.request "group_sources", key:key, null, timeout:10000, (err) =>
                     @log.error "Error getting StreamGroup sources: #{err}" if err
                     @log.info "Sources received for StreamGroup #{ key }."
                     af()

            for source in sg._stream.sources
                if source._shouldHandoff
                    do (source) =>
                        rpc.request "group_source",
                            group:      sg.key
                            type:       source.HANDOFF_TYPE

            source = new (require "../sources/#{msg.type}") _.extend {}, msg.opts, sock:handle, logger:stream.log
            stream.addSource source
            @log.info "Added stream source: #{stream.key}/#{source.uuid}"
            cb null

        rpc.on "group_source", (msg,handle,cb) =>
            sg = @stream_groups[ msg.group ]
            source = new (require "../sources/#{msg.type}") _.extend {}, msg.opts, sock:handle, logger:stream.log
            sg._stream.addSource source
            @log.info "Added group source: #{stream.key}/#{source.uuid}"
            cb null

        af = _.after (Object.keys(@streams).length+Object.keys(@stream_groups).length), =>
            cb null
