FWIW, fixing this bug requires changes in the kernel.
I'm not sure. I compiled 2.6.18.3 myself and problem persists.