Classical single-channel speech enhancement algorithms have two convenient properties: they require pre-learning the noise model but not the speech model, and they work online. How- ever, they often have difficulties in dealing with non-stationary noise sources. Source separation algorithms based on non- negative spectrogram decompositions are capable of dealing with non-stationary noise, but do not possess the aforemen- tioned properties. In this paper we present a novel algorithm that combines the advantages of both classical algorithms and nonnegative spectrogram decomposition algorithms. Experi- ments show that it significantly outperforms four categories of classical algorithms in non-stationary noise environments.