The slowness (reciprocal velocity) function is written as the sum of two functions, the first of which is large and depends only on depth, while the other is small and varies both with depth and position along the line. Raypaths are traced for the first slowness function and are used to calculate migration curves. For each depth point these same raypaths are used to calculate traveltime perturbations due to the laterally varying part of the slowness. The traveltime perturbations are added to the migration curve to obtain an approximation to the exact migration curve. This new migration scheme is much less expensive than the exact Kirchhoff scheme because only one set of rays need be traced. Numerical tests have shown that this scheme works surprisingly well even when the lateral variation of velocity is large.--Modified journal abstract.