 		docpad = @
 		docpad.lastGenerate ?= new Date('1970')
 
+		# Progress
+		progressIndicator = null
+		opts.setProgressIndicator = (_progressIndicator) ->
+			progressIndicator = _progressIndicator
+		showProgress = ->
+			progress = progressIndicator?()
+			if progress
+				[stage,completed,total] = progress
+				percent = Math.floor((completed/total)*100)+'%'
+				docpad.log 'info', "Currently on #{stage} at #{percent}"
+		progressInterval = setInterval(showProgress,10000)
+
+		# Finish
+		finish = (err) ->
+			clearInterval(progressInterval)
+			progressInterval = null
+			next(err)
+
 		# Re-load and re-render only what is necessary
 		if opts.reset? and opts.reset is false
 			# Prepare
 			docpad.generatePrepare (err) ->
-				return next(err)  if err
+				return finish(err)  if err
 				database = docpad.getDatabase()
 
 				# Create a colelction for the files to reload

				action: 'generatePrepare generateCheck generateClean generateParse generateRender generatePostpare'
				args: [opts]
				next: (err) ->
					return next(err)
			)

		# Chain

				docpad.log 'debug', "Rendered #{collection.length} files"
				return next()

		# Set progress indicator
		opts.setProgressIndicator? -> ['renderFiles',tasks.completed,tasks.total]

		# Push the render tasks
		collection.forEach (file) -> tasks.push (complete) ->
			# Skip?
