I recently came across Song at al.'s Stable But Nondissipative Water and eventually with the Back and Forth Error Compensation and Correction technique. I must say the simulation with BFECC looks great (looks less dissipated, with more small features preservation) and it has almost no impact in performance and can be trivially added to one's current implementation. It also has the advantage of being very intuitive.
A couple of implementation notes: