A scheme for missing-trace interpolation of a common midpoint (CMP) gather is proposed. Spatial aliasing in a CMP gather can be overcome by normal-moveout (NMO) correction. After NMO correction, we fill in missing traces so as to minimize the output of high-pass, recursive dip filtering. For optimization using a conjugate gradient, we derive the conjugate operator of the recursive dip filter. The proposed scheme is applied to three kinds of missing data problems - interlaced missing traces, truncation at the end of survey and randomly positioned missing traces.