   handler = (args...) ->
     emitter.removeListener 'error', errorHandler
     fiber.run args
+    return
   errorHandler = (error) ->
     emitter.removeListener event, handler
     fiber.throwInto error
+    return
 
   emitter.once event, handler
   emitter.once 'error', errorHandler
 
-  $fiber.yield()
+  return $fiber.yield()
 
 # Waits for a promise or a continuable to end.
 #

    fiber.throwInto.bind fiber
  )

  $fiber.yield()

$wait.register = ->
  throw new Error 'something has already been registered' if $wait._stash

  deferred = $Promise.defer()
  $wait._stash = deferred.promise

  deferred.callback

#=====================================================================

module.exports = {
  $fiberize
  $coroutine
  $waitEvent
  $wait
}

        process.nextTick ->
          throw error
    ).run()
    return

# Waits for an event.
#
