Just looked at your thread. Interesting. I'll give your code changes a go and see if it resolves the issue.
TBH, if this issue really has been around since 2008 it's ridiculous that a major flaw such as this has not been addressed!
Devs, If this is the case, care to comment why this hasn't been resolved?