Just getting the zeros isn't enough, if you are out of phase it will still click like a bastard.
I just thought I'd submit my half-formed analysis idea for this.... We can use the Hilbert transform to capture the instanteous phase of the signal, so we might could use it to detect phase discontinuities. If so, the phase could be smoothed out by using a running average filter over the location of the discontinuity, and then the signal could be reconstructed.
Chuck