         conn_pre_abort = =>
             debug "#{count}: conn_pre_abort called. Destroyed? ", conn.destroyed
 
-            if conn.destroyed
-                debug "aborting preroll ", count
+            if !aborted
+                debug "#{count}: Aborting preroll"
                 req.abort()
+                aborted = true
 
             clearTimeout req_t
 
+        # we don't need to fire the callback after these
         conn.once "close", conn_pre_abort
         conn.once "end", conn_pre_abort
 

            debug "#{count}: got a request error.", err
            conn.removeListener "close", conn_pre_abort
            conn.removeListener "end", conn_pre_abort
            cb?()
            return true

        # attach a close listener to the response, to be fired if it gets


                clearTimeout req_t

                rres.on "readable", =>
                    while chunk = rres.read()
                        buffers.push chunk
                        buf_len += chunk.length

                # when preroll is done, call the output's callback
                rres.on "end", =>
