   xhr.onreadystatechange = ->
     if xhr.readyState is 4
       if xhr.status in [0, 200]
-        CoffeeScript.run xhr.responseText, options
+        run = ->
+          CoffeeScript.run xhr.responseText, options
+          null
       else
         throw new Error "Could not load #{url}"
-      callback() if callback
+      run() unless hold
+      callback run
   xhr.send null
 
 # Activate CoffeeScript in the browser by having it compile and evaluate

  scripts = window.document.getElementsByTagName 'script'
  coffeetypes = ['text/coffeescript', 'text/literate-coffeescript']
  coffees = (s for s in scripts when s.type in coffeetypes)
  index = 0
  length = coffees.length
  do execute = ->
    script = coffees[index++]
    mediatype = script?.type
    if mediatype in coffeetypes
      options = {literate: mediatype is 'text/literate-coffeescript'}
      if script.src
        CoffeeScript.load script.src, execute, options
      else
        options.sourceFiles = ['embedded']
        CoffeeScript.run script.innerHTML, options
        execute()
  null

# Listen for window load, both in decent browsers and in IE.

    "#{js}\n//@ sourceMappingURL=data:application/json;base64,#{btoa unescape encodeURIComponent v3SourceMap}\n//@ sourceURL=coffeescript"

# Load a remote script from the current domain via XHR.
CoffeeScript.load = (url, callback = (->), options = {}, hold = false) ->
  options.sourceFiles = [url]
  xhr = if window.ActiveXObject
    new window.ActiveXObject('Microsoft.XMLHTTP')
