diff --git a/cmd/dump.go b/cmd/dump.go
index 0c07f36cf0..e8354784cf 100644
--- a/cmd/dump.go
+++ b/cmd/dump.go
@@ -68,17 +68,21 @@ func runDump(ctx *cli.Context) {
 		log.Fatalf("Fail to create %s: %v", fileName, err)
 	}
 
-	workDir, _ := setting.WorkDir()
 	if err := z.AddFile("gogs-repo.zip", reposDump); err !=nil {
 		log.Fatalf("Fail to include gogs-repo.zip: %v", err)
 	}
 	if err := z.AddFile("gogs-db.sql", dbDump); err !=nil {
 		log.Fatalf("Fail to include gogs-db.sql: %v", err)
 	}
-	if err := z.AddDir("custom", path.Join(workDir, "custom")); err !=nil {
-		log.Fatalf("Fail to include custom: %v", err)
+	customDir, err := os.Stat(setting.CustomPath)
+	if err == nil && customDir.IsDir() {
+		if err := z.AddDir("custom", setting.CustomPath); err !=nil {
+			log.Fatalf("Fail to include custom: %v", err)
+	    }
+	} else {
+		log.Printf("Custom dir %s doesn't exist, skipped", setting.CustomPath)
 	}
-	if err := z.AddDir("log", path.Join(workDir, "log")); err !=nil {
+	if err := z.AddDir("log", setting.LogRootPath); err !=nil {
 		log.Fatalf("Fail to include log: %v", err)
 	}
 	// FIXME: SSH key file.