Due to the use of variable length code (VLC), a single bit error in the discrete cosine transform (DCT)-based coded bit stream, such as H.263, may propagate up to the end of the group of blocks (GOBs) or slice. In this paper, we propose an iterative error detection and correction algorithm for the slice mode of the H.263 bit stream. The visibly erroneous macroblocks (MBs) in the decoded frames are detected by checking a set of error detection conditions derived from the redundant information (such as neighboring MBs and inner-DCT block similarity measure) inherent within the frame. In each slice, the part of the bit stream before the first erroneous MB is decoded in the conventional manner. The remaining part after this MB is redecoded iteratively, skipping one bit at a time until a decodable subbit stream is found. In case an MB is nondecodable, it is replaced with gray level. Once all the slices are checked, the frame is reconstructed and again checked for erroneous MBs. This process is repeated until the decoder detects no more corrupted MB. The proposed step-by-step decoding technique limits the error into a few MBs only, which can easily be concealed by any error concealment technique. The simulation results demonstrate that our scheme can recover the corrupted frames under the bit error rates up to 1% over binary symmetric channel (BSC), and improve the concealed picture quality by 4-6 dB over the conventional methods.