This article presents an efficient and robust algorithm that computes the intersection curve of two ruled surfaces. The surface intersection problem is reformulated as a zero-set finding problem for a bivariate function, which is also equivalent to the construction of an implicit curve in the plane. Each connected component of the surface intersection curve corresponds to a connected component in the zero-set, and vice versa, except for some singular points, redundant solutions, and degenerate cases. We also present algorithms that detect all these singular points, redundant solutions, and degenerate cases. 1999 Elsevier Science Ltd. All rights reserved.