Multithreading problems


My application uses two threads, one for rendering and the other for simultaneous scene preloading. So the first renders display lists and immediate mode commands for flexible geometry while the second create and fill the display lists that are going to be used soon. They both have their own RC with shared display lists / texture objects.
Everything works Ok. But under MSVS in debug output window sometimes appears the following message generated by (I suppose)nvoglnt.dll: “ExtEscape() FAILED!!!”
So what could be the problem (reason and workaround)?
I had to use critical sections to surround some OpenGL calls but I’ve done it in experimental way so may be some theoretical knowledge/advice about it exist?