diff --git a/cmd/bootnode/main.go b/cmd/bootnode/main.go
index 2f9bba111769211a36266c5840d1d6cdcb4a66db..f6e2a14c3bd269038f5c8913fc1d00f4a90c3858 100644
--- a/cmd/bootnode/main.go
+++ b/cmd/bootnode/main.go
@@ -70,7 +70,9 @@ func main() {
 		if err = crypto.SaveECDSA(*genKey, nodeKey); err != nil {
 			utils.Fatalf("%v", err)
 		}
-		return
+		if !*writeAddr {
+			return
+		}
 	case *nodeKeyFile == "" && *nodeKeyHex == "":
 		utils.Fatalf("Use -nodekey or -nodekeyhex to specify a private key")
 	case *nodeKeyFile != "" && *nodeKeyHex != "":