 			object: docpad
 			action: 'generatePrepare generateLoad generateRender generatePostpare'
 			args: [opts]
-			next: (err) ->
-				return finish(err)
+			next: finish
 		)
 
 		# Chain

		if @config.catchExceptions
			process.setMaxListeners(0)
			process.on('uncaughtException', @error)

		# Regenerate Timer
		if @regenerateTimer
			clearInterval(@regenerateTimer)
			@regenerateTimer = null
		if @config.regenerateEvery
			@regenerateTimer = setInterval(
				->
					docpad.log('info', locale.renderInterval)
					docpad.action('generate')
				@config.regenerateEvery
			)

		# Prepare the Post Tasks
		postTasks = new TaskGroup().once 'complete', (err) =>

		# Check
		return next()  if opts.collection?.length is 0

		# Clear Regenerate Timer
		if docpad.regenerateTimer
			clearInterval(docpad.regenerateTimer)
			docpad.regenerateTimer = null

		# Create Progress
		opts.progress ?= docpad.createProgress()

		# Clean up properly
		finish = (err) ->
			# Create Regenerate Timer
			if config.regenerateEvery
				docpad.regenerateTimer = setTimeout(
					->
						docpad.log('info', locale.renderInterval)
						docpad.action('generate')
					config.regenerateEvery
				)

			# Clear Progress
			if opts.progress
				docpad.destroyProgress(opts.progress)
				opts.progress = null

			# Forward
			return next(err)

		# Generate
