Here we present a general algorithm for processing microcalorimeter data with special applicability to data with high photon count rates. Conventional optimal filtering, which has become ubiquitous in microcalorimeter data processing, suffers from its inability to recover overlapped pulses without sacrificing spectral resolution. The technique presented here was developed to address this particular shortcoming, and does so without imposing any assumptions beyond those made by the conventional technique. We demonstrate the algorithm's performance with a data set that approximately satisfies these assumptions, and which is representative of a wide range of microcalorimeter applications. We also apply the technique to a highly non-linear data set, examining the impact on performance in the limit that these assumptions break down.