 			docpad.fatal(err)  if err
 		forward = (args...) =>
 			@log 'debug', util.format(locale.actionFinished, action)
-			balUtil.wait 0, -> next(args...)
+			process.nextTick -> next(args...)  # not sure why we do this, but we do
 
 		# Wrap
 		runner.addTask (complete) ->

		# Prepare
		docpad = @

		# If we are generating then wait until generation is complete before continuing
		if docpad.lastGenerate is null or docpad.generating is true
			docpad.once 'generateAfter', ->
				return docpad.serverMiddlewareRouter(req,res,next)
			return @

		# Prepare
		cleanUrl = req.url.replace(/\?.*/,'')
		file = docpad.getFileByUrl(req.url) or docpad.getFileByUrl(cleanUrl)
		return next()  if file? is false

		# Check if we are the desired url


		# Update generating flag
		docpad.generating = false
		docpad.generateEnded = new Date()

		# Update caches
		docpad.databaseCache = null
		collection.each (file) ->
			for url in file.get('urls')
				docpad.filesByUrl[url] = file.cid

		# Fire plugins
		docpad.emitSync 'generateAfter', server:docpad.getServer(), (err) ->
			return next(err)  if err

			# Log generated
			seconds = (docpad.generateEnded - docpad.generateStarted) / 1000
			howMany =
				if collection is database
					"all #{collection.length}"
