                 fstart = 0 if fstart < 0
 
                 fend = rangeEnd - fileStart + 1
+
+                if k.id3?.length
+                    fstart += k.id3.length
+                    fend += k.id3.length
 
                 readStreamOpts =
                     bufferSize:     256*1024


            # write id3?
            if k.id3? && rangeStart < k.id3.length
                res.write k.id3.slice(rangeStart,rangeEnd+1)

            if predata? && ( ( rangeStart <= prerollStart < rangeEnd ) || ( rangeStart <= prerollEnd < rangeEnd ) )
                pstart = rangeStart - prerollStart
                pstart = 0 if pstart < 0

                res.write predata.slice( pstart, rangeEnd - prerollEnd + 1 )

            rstream = null


        console.debug "firing preroll request", count
        req = http.get opts, (rres) =>
            console.debug "got preroll response ", count, rres.statusCode
            if rres.statusCode == 200
                # collect preroll and return it so length can be computed

