We have developed a residual shot profile migration technique, which consists of dip-corrected residual normal moveout (NMO) and depth restretching. The dip-corrected residual NMO equation and the depth restretching equation were derived by generalizing Al-Yahya's residual NMO equation. Using the dip-correction residual NMO equation, velocity errors can be estimated more accurately than without the dip correction term in the residual NMO equation. Residual shot profile migration was applied to migrated prestack data in a manner similar to conventional processing by cascading residual velocity analysis, residual NMO, and stack and depth stretching. With residual migration, we can either avoid remigration of the original prestack data or reduce the number of iterations required to produce a satisfactory image. Residual migration is efficient enough to be implemented on a workstation. Significant improvement in imaging to cases (a pinchout and salt top and bottom) is demonstrated using synthetic and field data examples.