A computational method is presented for minimizing the weighted sum of squares of the differences between observed and expected pairwise distances between species, where the expectations are generated by an additive tree model. The criteria of Fitch and Margoliash (1967, Science 155:279-284) and Cavalli-Sforza and Edwards (1967, Evolution 21:550-570) are both weighted least squares, with different weights. The method presented iterates lengths of adjacent branches in the tree three at a time. The weighted sum of squares never increases during the process of iteration, and the iterates approach a stationary point on the surface of the sum of squares. This iterative approach makes it particularly easy to maintain the constraint that branch lengths never become negative, although negative branch lengths can also be allowed. The method is implemented in a computer program, FITCH, which has been distributed since 1982 as part of the PHYLIP package of programs for inferring phylogenies, and is also implemented in PAUP*. The present method is compared, using some simulated data sets, with an implementation of the method of De Soete (1983, Psychometrika 48:621-626); it is slower than De Soete's method but more effective at finding the least squares tree. The relationship of this method to the neighbor-joining method is also discussed.