diff --git a/cmd/utils/flags.go b/cmd/utils/flags.go
index 3f54b40caf4c05b1abcf984aab3c619a0c582b35..5c0c3c614440ceb2b9c3d5201cc166bd657ada32 100644
--- a/cmd/utils/flags.go
+++ b/cmd/utils/flags.go
@@ -772,23 +772,22 @@ func MustMakeChainConfig(ctx *cli.Context) *core.ChainConfig {
 	)
 	defer db.Close()
 
-	chainConfig, err := core.GetChainConfig(db, genesis.Hash())
-	if err != nil {
-		if err != core.ChainConfigNotFoundErr {
+	if genesis != nil {
+		// Exsting genesis block, use stored config if available.
+		storedConfig, err := core.GetChainConfig(db, genesis.Hash())
+		if err == nil {
+			return storedConfig
+		} else if err != core.ChainConfigNotFoundErr {
 			Fatalf("Could not make chain configuration: %v", err)
 		}
-		var homesteadBlockNo *big.Int
-		if ctx.GlobalBool(TestNetFlag.Name) {
-			homesteadBlockNo = params.TestNetHomesteadBlock
-		} else {
-			homesteadBlockNo = params.MainNetHomesteadBlock
-		}
-
-		chainConfig = &core.ChainConfig{
-			HomesteadBlock: homesteadBlockNo,
-		}
 	}
-	return chainConfig
+	var homesteadBlockNo *big.Int
+	if ctx.GlobalBool(TestNetFlag.Name) {
+		homesteadBlockNo = params.TestNetHomesteadBlock
+	} else {
+		homesteadBlockNo = params.MainNetHomesteadBlock
+	}
+	return &core.ChainConfig{HomesteadBlock: homesteadBlockNo}
 }
 
 // MakeChainDatabase open an LevelDB using the flags passed to the client and will hard crash if it fails.