I have a better suggestion that I read elsewhere (maybe Joel on Software). Rather than stealth code fixes, write good test cases that expose the bug.
This has several advantages. First, you get to write good code even if it is just for a test case. Second, you force the fix to happen. Third, you force the bad coder away from new development and towards fixing their bugs. The original article I read suggested burying such coders in bug reports to prevent them from inflicting any more (new) damage on the system.