Most programs for plotting and analyzing structural data (Allmendinger et al., ftp://silver.geo.cornell.edu/ pub/rwa programs; De Paor, 1996; Duyster, http: // homepage.ruhr-uni-bochum.de / Johannes.P.Duyster/ stereo/stereo1.htm; Mancktelow http://www.erdw. ethz.ch/Bneil/stereoplot.html; van Everdingen http:// www.geomem.co.uk/geomem /products/quikplot.html.) allow a best-fit plane to be determined for a set of lines. This can be done algebraically by minimizing the sum of the squares of deviations between poles and the best-fit plane (Ramsay, 1967), or numerically by calculating the average angle of data with a finite number of differently oriented test planes, and finding the one yielding the smallest value. In structural geology a best-fit plane is frequently calculated to determine the average orientation of fold axes in a region. If the fold structure is approximately cylindrical, lines perpendicular to the folded surface (‘‘poles’’) will be contained in a plane normal to the fold axes (Ramsay and Huber, 1987; Fig. 1A). However, natural fold shapes often deviate from ideal cylindrical. In particular, superposed fold generations can produce complex geometries, and lead to pole distributions in two or more planes (e.g. Ragan, 1973; Mulchrone, 1991; Fig. 1B). We have written a program in FORTRAN that allows lines to be fitted to up to three planes. Possible applications are described and illustrated with two examples. Appendix sections referred to in this paper and the complete computer code can be viewed or downloaded from http://iamg.org/ CGEditor/index.htm. An executable Macintosh application can be requested from the first author. The problem in calculating multiple best-fit planes resides in the large number of combinations that can be formed with a small number of elements. In spherical coordinates, 32,401 planes are defined for a coordinate spacing of 11. From these, 5.1 10 different plane pairs can be formed, and over 5.4 10 plane triplets. Testing all these for a data set of, let us say, 1000 lines is not practical even with modern computers. Consequently, our program starts with an initial set of only 43 regularly spaced test planes (Step 1), calculates a preliminary best-fit solution with these planes, and subsequently refines it in an iterative loop (Step 2) until a resolution of 11 is reached.