The displacement and deformation of brain tissue is a major source of error in image-guided neurosurgery systems. We have designed and implemented a method to detect and correct brain shift using pre-operative MR images and intraoperative Doppler ultrasound data and present its validation with both real and simulated data. The algorithm uses segmented vessels from both modalities, and estimates the deformation using a modified version of the iterative closest point (ICP) algorithm. We use the least trimmed squares (LTS) to reduce the number of outliers in the point matching procedure. These points are used to drive a thin-plate spline transform to achieve non-linear registration. Validation was completed in two parts. First, the technique was tested and validated using realistic simulations where the results were compared to the known deformation. The registration technique recovered 75% of the deformation in the region of interest accounting for deformations as large as 20 mm. Second, we performed a PVA-cryogel phantom study where both MR and ultrasound images of the phantom were obtained for three different deformations. The registration results based on MR data were used as a gold standard to evaluate the performance of the ultrasound based registration. On average, deformations of 7.5 mm magnitude were corrected to within 1.6 mm for the ultrasound based registration and 1.07 mm for the MR based registration.