diff --git a/cmd/watchflakes/github.go b/cmd/watchflakes/github.go
index 938b0f8..3314ebe 100644
--- a/cmd/watchflakes/github.go
+++ b/cmd/watchflakes/github.go
@@ -237,9 +237,10 @@
 	return b.String()
 }
 
-// reportNew creates and returns a new issue for reporting the failure.
-// If *post is false, reportNew returns a fake issue with number 0.
-func reportNew(fp *FailurePost) (*Issue, error) {
+// prepareNew creates and returns a new issue for reporting the failure.
+// It doesn't post the issue to GitHub. If *post is true, one needs to
+// call postNew to post.
+func prepareNew(fp *FailurePost) (*Issue, error) {
 	var pattern, title string
 	if fp.Pkg != "" {
 		pattern = fmt.Sprintf("pkg == %q && test == %q", fp.Pkg, fp.Test)
@@ -272,11 +273,7 @@
 	}
 
 	issue := new(Issue)
-	if *post {
-		issue.Issue = newIssue(title, msg.String())
-	} else {
-		issue.Issue = &github.Issue{Title: title, Body: msg.String()}
-	}
+	issue.Issue = &github.Issue{Title: title, Body: msg.String()}
 	findScript(issue)
 	if issue.Error != "" {
 		return nil, fmt.Errorf("cannot find script in generated issue:\nBody:\n%s\n\nError:\n%s", issue.Body, issue.Error)
@@ -333,11 +330,11 @@
 	issue.Stale = false
 }
 
-// newIssue creates a new issue with the given title and body,
+// postNew creates a new issue with the given title and body,
 // setting the NeedsInvestigation label and placing the issue int
 // the Test Flakes project.
 // It automatically adds signature to the body.
-func newIssue(title, body string) *github.Issue {
+func postNew(title, body string) *github.Issue {
 	var args []any
 	if lab := labels["NeedsInvestigation"]; lab != nil {
 		args = append(args, lab)
diff --git a/cmd/watchflakes/main.go b/cmd/watchflakes/main.go
index 23e36a5..7257db4 100644
--- a/cmd/watchflakes/main.go
+++ b/cmd/watchflakes/main.go
@@ -201,7 +201,7 @@
 					if *verbose {
 						fmt.Printf("%s: new issue\n", fp.URL)
 					}
-					issue, err := reportNew(fp)
+					issue, err := prepareNew(fp)
 					if err != nil {
 						log.Fatal(err)
 					}
@@ -249,6 +249,9 @@
 	posts := 0
 	for _, issue := range issues {
 		if len(issue.Post) > 0 {
+			if *post && issue.Number == 0 {
+				issue.Issue = postNew(issue.Title, issue.Body)
+			}
 			fmt.Printf(" - new for #%d %s\n", issue.Number, issue.Title)
 			for _, fp := range issue.Post {
 				fmt.Printf("    - %s\n      %s\n", fp, fp.URL)
