Index: subsystems/win32/win32k/eng/xlate.c =================================================================== --- subsystems/win32/win32k/eng/xlate.c (revision 50686) +++ subsystems/win32/win32k/eng/xlate.c (working copy) @@ -361,9 +361,7 @@ EXLATEOBJ_vInitTrivial(pexlo); - if (ppalDst == ppalSrc || !ppalSrc || !ppalDst || - ((ppalDst->flFlags == PAL_RGB || ppalDst->flFlags == PAL_BGR) && - ppalDst->flFlags == ppalSrc->flFlags)) + if (!ppalSrc || !ppalDst) { return; } @@ -372,6 +370,13 @@ pexlo->ppalDst = ppalDst; pexlo->xlo.iSrcType = ppalSrc->flFlags; pexlo->xlo.iDstType = ppalDst->flFlags; + + if (ppalDst == ppalSrc || + ((ppalDst->flFlags == PAL_RGB || ppalDst->flFlags == PAL_BGR) && + ppalDst->flFlags == ppalSrc->flFlags)) + { + return; + } /* Chack if both of the pallettes are indexed */ if (!(ppalSrc->flFlags & PAL_INDEXED) || !(ppalDst->flFlags & PAL_INDEXED)) @@ -607,13 +612,6 @@ psurfDst = pdcDst->dclevel.pSurface; psurfSrc = pdcSrc->dclevel.pSurface; - /* Check for trivial color translation */ - if (psurfDst == psurfSrc) - { - EXLATEOBJ_vInitTrivial(pexlo); - return; - } - /* Normal initialisation. No surface means DEFAULT_BITMAP */ EXLATEOBJ_vInitialize(pexlo, psurfSrc ? psurfSrc->ppal : &gpalMono,