Thanks for the suggestion, Huw. I'll try applying that xrender patch to our build of X and see if it fixes the problems we were having...
If we really have to have a workaround in Wine then the string should at least be batched rather than passed character by character.
I agree that this would be better - but using existing code that we know works had a distinct appeal, and in our testing we only came across a *very* few places where this happened, so trying to optimize it seemed like it wasn't worth the effort.
Warren