Index: reactos/win32ss/gdi/dib/dib24bpp.c =================================================================== --- reactos/win32ss/gdi/dib/dib24bpp.c (revision 75147) +++ reactos/win32ss/gdi/dib/dib24bpp.c (working copy) @@ -429,7 +429,7 @@ SourceSurf->sizlBitmap.cx > SourceX && SourceSurf->sizlBitmap.cy > SourceY) { Source = DIB_GetSourceIndex(SourceSurf, SourceX, SourceY); - if(Source != iTransColor) + if((Source & 0x00FFFFFF) != iTransColor) { Dest = XLATEOBJ_iXlate(ColorTranslation, Source) & 0xFFFFFF; *(PUSHORT)(DestBits) = Dest & 0xFFFF; Index: reactos/win32ss/gdi/dib/dib32bpp.c =================================================================== --- reactos/win32ss/gdi/dib/dib32bpp.c (revision 75147) +++ reactos/win32ss/gdi/dib/dib32bpp.c (working copy) @@ -312,7 +312,7 @@ SourceSurf->sizlBitmap.cx > SourceX && SourceSurf->sizlBitmap.cy > SourceY) { Source = DIB_GetSourceIndex(SourceSurf, SourceX, SourceY); - if (Source != iTransColor) + if ((Source & 0x00FFFFFF) != iTransColor) { *DestBits = XLATEOBJ_iXlate(ColorTranslation, Source); } Index: reactos/win32ss/gdi/ntgdi/bitblt.c =================================================================== --- reactos/win32ss/gdi/ntgdi/bitblt.c (revision 75147) +++ reactos/win32ss/gdi/ntgdi/bitblt.c (working copy) @@ -219,6 +219,8 @@ BOOL Ret = FALSE; EXLATEOBJ exlo; + TransColor &= 0x00FFFFFF; + if ((hdcDst == NULL) || (hdcSrc == NULL)) { EngSetLastError(ERROR_INVALID_PARAMETER);