diff --git a/server.go b/server.go
index <HASH>..<HASH> 100644
--- a/server.go
+++ b/server.go
@@ -107,10 +107,16 @@ func Run(address string, port int) {
 	MainRouter = NewRouter(routePath)
 	MainTemplateLoader = NewTemplateLoader(ViewsPath, RevelTemplatePath)
 
+	// If DEV mode, create a watcher for templates and routes.
+	// The watcher calls Refresh() on things on the first request.
 	if RunMode == DEV {
 		MainWatcher = NewWatcher()
 		MainWatcher.Listen(MainTemplateLoader, ViewsPath, RevelTemplatePath)
 		MainWatcher.Listen(MainRouter, routePath)
+	} else {
+		// Else, call refresh on them directly.
+		MainTemplateLoader.Refresh()
+		MainRouter.Refresh()
 	}
 
 	server := &http.Server{
diff --git a/template.go b/template.go
index <HASH>..<HASH> 100644
--- a/template.go
+++ b/template.go
@@ -109,7 +109,6 @@ func NewTemplateLoader(paths ...string) *TemplateLoader {
 	loader := &TemplateLoader{
 		paths: paths,
 	}
-	loader.Refresh()
 	return loader
 }
Bug fix: In Prod mode, call Refresh() on router/templateloader to initialize them.