Index: win32ss/gdi/ntgdi/freetype.c =================================================================== --- win32ss/gdi/ntgdi/freetype.c (revision 72505) +++ win32ss/gdi/ntgdi/freetype.c (working copy) @@ -3408,9 +3408,15 @@ IntLPtoDP(dc, (POINT *)lprc, 2); } - Start.x = XStart; - Start.y = YStart; - IntLPtoDP(dc, &Start, 1); + if(pdcattr->lTextAlign & TA_UPDATECP) + { + Start.x = pdcattr->ptlCurrent.x; + Start.y = pdcattr->ptlCurrent.y; + } else { + Start.x = XStart; + Start.y = YStart; + IntLPtoDP(dc, &Start, 1); + } RealXStart = ((LONGLONG)Start.x + dc->ptlDCOrig.x) << 6; YStart = Start.y + dc->ptlDCOrig.y; @@ -3842,6 +3848,11 @@ String++; } + + if (pdcattr->lTextAlign & TA_UPDATECP) { + pdcattr->ptlCurrent.x = DestRect.right - dc->ptlDCOrig.x; + } + IntUnLockFreeType; DC_vFinishBlit(dc, NULL) ;