I use *xterm* (X-Win32 2012 Build 30 from StarNet Communications Corp) to login from a Windows 7 PC to a Red Enterprise Linux 6 (RHEL6). My problem is that all multi-byte utf-8 characters comes out garbled in the xterm login shell. For example, here's how the string "Wilhelm Röntgen" is rendered in the two shell instances (the font used is a Unicode font and is the same font in both shell instances): Login shell: Wilhelm Röntgen Second shell: Wilhelm Röntgen Here is the command I've configured X-Win32 to use to start the login shell: xterm -u8 -ls However, *after* I login, I can do `xterm` in the login shell, and that command that will fork a new xterm instance where locale setting works as expected (i.e. utf-8 characters are rendered correctly). Here is the relevant settings as they appear in the login shell: $ locale LANG=en_US.UTF-8 LC_CTYPE=en_US.UTF-8 LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE=C LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL= $ printenv XTERM_LOCALE en_US.UTF-8 I also have the following two lines in .Xresources: xterm*locale: true xterm*utf8: 1 It looks like the login shell xterm doesn't recognise the locale I've set, but I don't understand why not. My xterm is clearly capable of this, since all non-login shells do this by default.