By modifying product codes, a new coding scheme and its decoding method are proposed. Compared to a product code

, the first stage code

of the new code

is constructed in the same way as that of the code

except that it has at least one subcode, while the second stage codes

of the code

are a set of codes With the same length and different rates. The new coding scheme has a smaller upper bound on the probability of decoding error than the original product coding scheme for any given nonzero rate less than the capacity of a binary symmetric channel. An example is given for which the rate is increased compared With the original product code, at a fixed probability of decoding error, for a relatively short code length.