Index: win/tclWinInit.c
===================================================================
RCS file: /cvsroot/tcl/tcl/win/tclWinInit.c,v
retrieving revision 1.38
diff -u -r1.38 tclWinInit.c
--- win/tclWinInit.c	4 Feb 2003 17:06:53 -0000	1.38
+++ win/tclWinInit.c	13 Feb 2003 23:08:22 -0000
@@ -13,6 +13,7 @@
 #include "tclWinInt.h"
 #include <winnt.h>
 #include <winbase.h>
+#include <lmcons.h>
 
 /*
  * The following declaration is a workaround for some Microsoft brain damage.
@@ -597,6 +598,8 @@
     OemId *oemId;
     OSVERSIONINFOA osInfo;
     Tcl_DString ds;
+    TCHAR szUserName[ UNLEN+1 ];
+    DWORD dwUserNameLen;
 
     osInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFOA);
     GetVersionExA(&osInfo);
@@ -663,11 +666,12 @@
      * faster than asking the system.
      */
 
-    Tcl_DStringSetLength(&ds, 100);
+    Tcl_DStringInit( &ds );
     if (TclGetEnv("USERNAME", &ds) == NULL) {
-	if (GetUserName(Tcl_DStringValue(&ds), (LPDWORD) &Tcl_DStringLength(&ds)) == 0) {
-	    Tcl_DStringSetLength(&ds, 0);
-	}
+
+	if ( GetUserName( szUserName, &dwUserNameLen ) != 0 ) {
+	    Tcl_WinTCharToUtf( szUserName, dwUserNameLen, &ds );
+	}	
     }
     Tcl_SetVar2(interp, "tcl_platform", "user", Tcl_DStringValue(&ds),
 	    TCL_GLOBAL_ONLY);
