To have this method work properly, one would have to somehow make 'glXMakeCurrent(NULL)' run in the context of thread A before doing what you did.
Threading fun.... Will be a long study of man pages and windows threading things I guess.
A wild guess: Remove the context after every function using OpenGL and aquire it at the beginning? Really bad performance I'd guess, if it works at all.
(Olivier just has sent me a useable guide for thread safety things)
Another update before sending: I've used my glXMakeCurrent hack with old ddraw, and guess what: Empire Earth brings the main menu up successfully[1]. It's slow as hell(yes, 2D DIB with those horrible ATI drivers), and it has some little drawing problems. It crashes in msacm when trying to start a game. Well, this shows that its possible - Time to make this work with WineD3D ;-)
[1] Screen shots are allways cool - www.doesi.gmxhome.de/ee-shot.png