A Fortran program has been developed for the reduction of single-crystal diffraction data from a sequence of adjacent rotation pictures recorded at a fixed X-ray wavelength by an electronic area detector. The electronic pictures (data frames) covering the first 5° of crystal rotation are used to locate strong diffraction spots and to estimate the background. The orientation of the crystal is derived automatically from the list of observed spots and all parameters describing the diffraction pattern are refined. The only input required from the user is the specification of the space group, approximate cell dimensions and detector setting. When the initialization step is finished the program goes back to the first picture and evaluates all data frames in the order they arrive from the measurement. Each element of an electronic picture (pixel) is labelled by the indices of the nearest reflection using the current refined parameters describing the diffraction geometry. If the pixels close to its nearest reflection the counts contribute to the three-dimensional profile; otherwise the counts are used to update the background. Each profile is represented as if the reflection had followed the shortest path through the Ewald sphere and had been recorded on the surface of the sphere. Reflections close to the Ewald sphere are kept in a hash table to allow rapid access for updating the profiles. Reflections which have completely passed through the Ewald sphere are removed from the table and saved for further processing. Intensities are estimated by fitting their profiles to an average shape learned from strong neighbouring reflections. Smoothly varying scaling factors are applied to the Lp-corrected intensities which minimize discrepancies between symmetry-related reflections and fit to a reference data set if available.