                         baseURL = url.slice(0, url.lastIndexOf('/'))
                         ad.nextWrapperURL = "#{baseURL}/#{ad.nextWrapperURL}"
 
-                    @_parse ad.nextWrapperURL, headers, timeout, parentURLs, (err, wrappedResponse) =>
+                    @_parse ad.nextWrapperURL, headers, timeout, logger, parentURLs, (err, wrappedResponse) =>
                         if err?
                             # Timeout of VAST URI provided in Wrapper element, or of VAST URI provided in a subsequent Wrapper element.
                             # (URI was either unavailable or reached a timeout as defined by the video player.)

    @countURLTemplateFilters: () -> URLTemplateFilters.length
    @clearUrlTemplateFilters: () -> URLTemplateFilters = []

    @parse: (url, headers, timeout, cb) ->
        @_parse url, headers, timeout, null, (err, response) ->
            cb(response)

    @_parse: (url, headers, timeout, parentURLs, cb) ->

        # Process url with defined filter
        url = filter(url) for filter in URLTemplateFilters

                                if ad.trackingEvents?
                                    for creative in wrappedAd.creatives
                                        for eventName in Object.keys ad.trackingEvents
                                            if creative.trackingEvents?
                                                creative.trackingEvents[eventName] or= []
                                                creative.trackingEvents[eventName] = creative.trackingEvents[eventName].concat ad.trackingEvents[eventName]

                                if ad.sequence? and ad.sequence > 0
                                    wrappedAd.sequence = ad.sequence

