A simple, effective data hiding method based on module substitution is proposed. A variety of confidential bits are embedded to each block in accordance with the base-value of the block. In addition, two fine-labeling procedures are employed in the proposed method to further alleviate the quantized error during data embedment. Simulations show that both PSNR and hiding rate generated by the proposed method are better than those generated by the reported methods. Since the perceived quality of the resulting mixed images is good, the hackers are hardly noticed the existence of the secret message.