Sherwood and Zeger proposed a source-channel coding system where the source code is an embedded bitstream and the channel code is a product code such that each row code is a concatenation of a cyclic redundancy check (CRC) and rate-compatible punctured convolutional codes (RCPC) and the column codes are Reed-Solomon (RS) codes. We improve this system for wireless applications by efficiently reorganizing the source code into a set of independently decodable packets, which makes it more robust in varying channels. We also give a linear-time algorithm for finding an optimal equal error protection for the resulting system. Experimental results show that the performance of our system significantly outperforms that of the current state-of-the-art in fading channels with varying statistics.