diff --git a/src/cmd/godoc/godoc.go b/src/cmd/godoc/godoc.go
index 176e33949fa20abc38b230dff6614dd82401e898..eebedd28702b6be3ac9cf13375dcdabb03bf8f1a 100644
--- a/src/cmd/godoc/godoc.go
+++ b/src/cmd/godoc/godoc.go
@@ -111,10 +111,12 @@ func init() {
 	flag.StringVar(&cmdroot, "cmdroot", pathutil.Join(goroot, "src/cmd"), "command source directory")
 	flag.StringVar(&pkgroot, "pkgroot", pathutil.Join(goroot, "src/pkg"), "package source directory")
 	flag.StringVar(&tmplroot, "tmplroot", pathutil.Join(goroot, "lib/godoc"), "template directory")
+}
+
 
+func initHandlers() {
 	fsMap.Init(*path)
 	fileServer = http.FileServer(goroot, "")
-
 	cmdHandler = httpHandler{"/cmd/", cmdroot, false}
 	pkgHandler = httpHandler{"/pkg/", pkgroot, true}
 }
diff --git a/src/cmd/godoc/main.go b/src/cmd/godoc/main.go
index 4bff23f0dfd60d7fca06321201435dd249832ebb..9a7a13ababfb5696e701cf11ba7421e7fa73e2ae 100644
--- a/src/cmd/godoc/main.go
+++ b/src/cmd/godoc/main.go
@@ -152,6 +152,7 @@ func main() {
 		log.Exitf("negative tabwidth %d", *tabwidth)
 	}
 
+	initHandlers()
 	readTemplates()
 
 	if *httpaddr != "" {