An adaptive technique is proposed for temporal error concealment based on the boundary matching algorithm. Previous approaches usually estimate only one motion vector for a damaged macroblock by minimizing the boundary difference. This may generate edge fragmentation, object deformation, and other noticeable artifacts, especially in damaged areas involving non-homogeneous motion. We present a framework of using various motion vectors for different regions within a damaged macroblock. The damaged macroblock is divided into small blocks, and each of the blocks is then concealed with an estimated motion vector. The estimation of motion vectors is independent, but constrained, in order to make it robust for concealment in different areas. A new matching criterion is developed in order to take into account possible edges on block boundaries. The advantage of the new algorithm has been shown by simulations.