A near-vertical deep 3-D seismic survey covering an area of approximately 17.85 × 19.1 km has been carried out across the German continental deep borehole (KTB) site. This survey is the first of this kind to investigate complicated crystalline crust. Two major problems were encountered during the post-stack 3-D migration of these data. First, the survey region includes areas with strong lateral velocity gradients, which are difficult to treat with many migration algorithms. Velocities in the sedimentary rocks are ∼ 3000 m/s and in the crystalline rocks ∼ 5500 m/s. Secondly, the data are sparsely sampled (50 × 50 m binning), but include steeply dipping events with true dips up to 60°. To determine the optimum 3-D migration approach three different algorithms have been tested: summation (modified Kirchhoff), finite-difference and phase-shift. Results of the various tests suggest that one-pass 3-D migration algorithms produce noticeably superior results to the much faster two-pass methods. The combination of steep dips and sparsely sampled data was a problem for the finite-difference migration, whereas shallow dipping features were imaged well by this technique. Although the adopted phase-shift migration algorithm could not handle lateral velocity gradients, it produced excellent results for both shallow and steeply dipping structures. Both of these migration algorithms are relatively fast. By comparison, the summation migration algorithm produced overall good results for regions containing steep dips and strong lateral velocity variations, but it requires a lot of computing time.