problems calculating phase propagation (in C)
you don't wanna do this on a bin-by-bin basis.  here's a paper by Miller Puckette that is seminal regarding this issue.  what you want to do is identify specific frequency components (perhaps each lobe in the spectrum would be a specific frequency component) and multiply that entire $n$th lobe by $e^{j \phi_n}$  where $\phi_n = \omega_n \ T_n$  and  $\omega_n$ is the frequency of the $n$th component and $T_n$ is the time adjustment to that component to match its phase to the corresponding component in the previous frame.

each bin gets multiplied by $e^{j \phi_n}$, but for most bins that factor is the same as for an adjacent bin.