No, ScanLine only returns the address of the data. It seems that the bitmap really contains blue pixels. So BGRAFillClearTypeRGBMask is maybe ok, and the problem would appear in BGRATextOut and BGRATextRect. In some mysterious way, the bitmap gets a blue background. Maybe a problem of image format, because there is an implicit conversion between TBitmap and BGRABitmap data. But why this problem would appear with ClearType only, I don't understand.