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;