             if @_opening
                 console.log "W3C already opening... wait."
                 # we're already trying to open.  return an error so we queue the message
-                cb?(true)
-                return true
+                return false
                 
             console.log "W3C opening log file."
             
-            # otherwise, open the file
-            @_opening = true
-                        
+            # note that we're opening, and also set a timeout to make sure 
+            # we don't get stuck
+            @_opening = setTimeout =>
+                console.log "Failed to open w3c log within one second."
+                @_opening = false
+                @open(cb)
+            , 1000
+            
+            # is this a new file or one that we're just re-opening?
             initFile = true
             if fs.existsSync(@options.filename)
                 # file exists...  see if there's anything in it

                    # start appending
                    initFile = false
            
            @file = fs.createWriteStream @options.filename, flags:(if initFile then "w" else "r+")
            
            @file.once "open", (err) =>   
                console.log "w3c log open with ", err
                if initFile
                    # write our initial w3c lines
                    @file.write "#Software: StreamMachine\n#Version: 0.2.9\n#Fields: c-ip date time cs-uri-stem c-status cs(User-Agent) sc-bytes x-duration\n", "utf8", =>
                      @_opening = false
                      console.log "w3c open complete"
                      cb?(false)
                    
                @flush()
                            
        #----------
            
        close: (cb) ->
            @file?.end null, null, =>
              console.log "W3C log file closed."
            @file = null
            
        #----------
        
        flush: ->
            _u(@queued).each (l) => process.nextTick => @file.write(l)
            @queued.length = 0
            console.log "w3c finished flushing"
            @file.once "drain", => @emit "flush"
            
    #----------
    

            super(options)
            
            @options = options
            
            @_opening   = false
            @_file      = null
            @_queue = []
            
            process.addListener "SIGHUP", =>
                # re-open our log file
