> > + static BOOL recursive = FALSE; > > That static looks very suspicious. It should either be stored in the > object or use some sort of locking. Well, there is locking, it is done by the client library(ddraw, d3d8, d3d9). Still storing this in the object is a good idea I think