The interpretation of seismic velocity variations in crystalline rocks in terms of fracture parameters requires velocity measurements with errors no greater than 1-2 percent. To achieve optimum resolution, we have devised a method of calculating P velocity-depth profiles from crystal-cable well surveys that makes maximum use of the data redundancy. Relative time corrections are computed iteratively for the entire set of shots using the overlapping portions of the hydrophone array between consecutive shots. From the resulting travel time versus distance curve, a family of possible velocity solutions is obtained for data windows of various lengths using Bolt's modification of the method of summary values devised by Jeffreys. Trade-off curves between the number of data points in the window and the variance of the velocity estimates are then drawn for different regions of the velocity profile. This enables a preferred solution to be constructed for each section of the velocity profile. The preferred velocity-depth curve for a region of a gneiss-monzonite rock body at depths between 25 and 254 m shows minima that correlate with the positions of major fractures or high concentrations of fractures inferred from optical examination of core samples, laboratory measurement of velocities, and tube wave studies.