Stability, accuracy and efficiency are three utmost concerns of a finite difference algorithm. The finite difference calculation of traveltimes is an extrapolation process. To maintain the stability of the calculation, the extrapolation must be causal. For this reason, Vidale's algorithm (1988) starts the extrapolation from the so called ``relative minimum points''. However, as pointed out by Van Trier and Symes (1991), this ordering procedure complicates the algorithm and makes it non-vectorizable. Consequently, I follow Van Trier and Symes' approach and do the computation in polar coordinates. Stability is ensured by adapting the step size of extrapolation to the local directions of wave propagation.