         fs.readFile source, (err, code) ->
           return watchErr err if err
           compileScript(source, code.toString(), base)
-    , 25
+
+  watchErr = (e) ->
+    throw e unless e.code is 'ENOENT'
+    removeSource source, base, yes
+    compileJoin()
 
   try
     watcher = fs.watch source, callback = (event) ->


  compile = ->
    clearTimeout compileTimeout
    compileTimeout = setTimeout ->
      fs.stat source, (err, stats) ->
        return watchErr err if err
        return if prevStats and (stats.size is prevStats.size and

        compile()
      else if event is 'rename'
        watcher.close()
        wait 250, ->
          compile()
          try
            watcher = fs.watch source, callback
          catch e  
            watchErr e
  catch e 
    watchErr e


# Watch a directory of files for new additions.
