Only access 16-bit stack if really necessary.
diff --git a/dlls/user/edit.c b/dlls/user/edit.c index 372150a..baeddb2 100644 --- a/dlls/user/edit.c +++ b/dlls/user/edit.c
@@ -1618,7 +1618,6 @@ { STACK16FRAME* stack16 = MapSL((SEGPTR)NtCurrentTeb()->WOW32Reserved); HINSTANCE16 hInstance = GetWindowLongPtrW( es->hwndSelf, GWLP_HINSTANCE ); - HANDLE16 oldDS = stack16->ds; if (!es->text) { CHAR *textA = NULL; @@ -1635,6 +1634,7 @@ } else if(es->hloc16) { + HANDLE16 oldDS = stack16->ds; TRACE("Synchronizing with 16-bit ANSI buffer\n"); stack16->ds = hInstance; textA = MapSL(LocalLock16(es->hloc16)); @@ -1677,6 +1677,7 @@ MultiByteToWideChar(CP_ACP, 0, textA, countA, es->text, es->buffer_size + 1); if(_16bit) { + HANDLE16 oldDS = stack16->ds; stack16->ds = hInstance; LocalUnlock16(es->hloc16); stack16->ds = oldDS;