A new algorithm to detect cylinder misfire in automotive gasoline engines is presented in this paper. It is based on processing the variations in crankshaft speed of the engine. In the algorithm, the crankshaft speed data is preprocessed and then modeled as a Mixture of Gaussian components. The appropriate number of components in the data is determined using a goodness-of-fit measure. When misfire is taking place, two or more Gaussian components will appear in the mixture model. Based on the estimated parameters (mean, variance) of the components and a specified probability of false alarms, a Generalized Likelihood decision rule is designed to classify every data point as a misfire or no-misfire behavior. The algorithm was tested on real engine data and the results were encouraging.