             console.debug "size:", fsize
 
             @listeners++
+
+            rangeStart  = 0
+            rangeEnd    = fend
 
             if rangeRequest
                 rangeStart  = if (requestStart  <= fend) then requestStart else 0

            console.debug "got preroll response ", count
            if rres.statusCode == 200
                # collect preroll and return it so length can be computed
                pre_data = new Buffer(0)

                rres.on "data", (chunk) =>
                    buf = new Buffer(pre_data.length + chunk.length)
                    pre_data.copy(buf, 0)
                    chunk.copy(buf, pre_data.length)
                    pre_data = buf

                # when preroll is done, call the output's callback
                rres.on "end", =>
                    conn.removeListener "close", conn_pre_abort
                    conn.removeListener "end", conn_pre_abort
                    cb?(pre_data)
                    return true


            # be changed.
            # If it IS a range request, then "length" will get
            # changed to be the chunk size.

            fsize   = (predata?.length||0) + k.size
            fend    = fsize - 1
            length  = fsize
