I may be wrong, and I'm sorry if that's the case, but are you sure the following new code in dlls/d3d8/device.c does what you believe it does?
if ((This->StateBlock->texture_state[Stage][D3DTSS_ALPHAARG1] == D3DTA_TEXTURE) && ((oldTxt == NULL) && (pTexture != NULL)) || ((pTexture == NULL) && (oldTxt != NULL))) { reapplyFlags |= REAPPLY_ALPHAOP; } && binds stronger than ||, so in fact the above boils down to (first line && second line) || third line while it occurs to me that you ment to achieve the following if ( This->StateBlock->texture_state[Stage][D3DTSS_ALPHAARG1] == D3DTA_TEXTURE) && ( ( oldTxt == NULL && pTexture != NULL ) || ( pTexture == NULL && oldTxt != NULL ) ) ) (Personally, I think it's also nicer to omit the parentheses around == and !=, but that's a different one.) Gerald -- Gerald Pfeifer (Jerry) [EMAIL PROTECTED] http://www.pfeifer.com/gerald/