diff --git a/modules/web/middleware/flash.go b/modules/web/middleware/flash.go
index fa29ddeffc..41f3aac27c 100644
--- a/modules/web/middleware/flash.go
+++ b/modules/web/middleware/flash.go
@@ -5,17 +5,6 @@ package middleware
 
 import "net/url"
 
-// flashes enumerates all the flash types
-const (
-	SuccessFlash = "SuccessMsg"
-	ErrorFlash   = "ErrorMsg"
-	WarnFlash    = "WarningMsg"
-	InfoFlash    = "InfoMsg"
-)
-
-// FlashNow FIXME:
-var FlashNow bool
-
 // Flash represents a one time data transfer between two requests.
 type Flash struct {
 	DataStore ContextDataStore
@@ -27,15 +16,12 @@ func (f *Flash) set(name, msg string, current ...bool) {
 	if f.Values == nil {
 		f.Values = make(map[string][]string)
 	}
-	isShow := false
-	if (len(current) == 0 && FlashNow) ||
-		(len(current) > 0 && current[0]) {
-		isShow = true
-	}
-
-	if isShow {
+	showInCurrentPage := len(current) > 0 && current[0]
+	if showInCurrentPage {
+		// assign it to the context data, then the template can use ".Flash.XxxMsg" to render the message
 		f.DataStore.GetData()["Flash"] = f
 	} else {
+		// the message map will be saved into the cookie and be shown in next response (a new page response which decodes the cookie)
 		f.Set(name, msg)
 	}
 }
diff --git a/routers/web/repo/pull.go b/routers/web/repo/pull.go
index 505e1424cd..c5f260adfa 100644
--- a/routers/web/repo/pull.go
+++ b/routers/web/repo/pull.go
@@ -175,10 +175,8 @@ func getForkRepository(ctx *context.Context) *repo_model.Repository {
 	} else if len(orgs) > 0 {
 		ctx.Data["ContextUser"] = orgs[0]
 	} else {
-		msg := ctx.Tr("repo.fork_no_valid_owners")
-		ctx.Data["Flash"] = ctx.Flash
-		ctx.Flash.Error(msg)
 		ctx.Data["CanForkRepo"] = false
+		ctx.Flash.Error(ctx.Tr("repo.fork_no_valid_owners"), true)
 		return nil
 	}
 
@@ -194,8 +192,7 @@ func Fork(ctx *context.Context) {
 	} else {
 		maxCreationLimit := ctx.Doer.MaxCreationLimit()
 		msg := ctx.TrN(maxCreationLimit, "repo.form.reach_limit_of_creation_1", "repo.form.reach_limit_of_creation_n", maxCreationLimit)
-		ctx.Data["Flash"] = ctx.Flash
-		ctx.Flash.Error(msg)
+		ctx.Flash.Error(msg, true)
 	}
 
 	getForkRepository(ctx)