diff --git a/indra/llwindow/llwindowsdl.cpp b/indra/llwindow/llwindowsdl.cpp
index 9b0ffb382c8e6ece7ffa87741122aac2064b1103..adb223f543e2be8fc627f6ea485a1e51e8a1cf3d 100644
--- a/indra/llwindow/llwindowsdl.cpp
+++ b/indra/llwindow/llwindowsdl.cpp
@@ -1763,7 +1763,7 @@ void LLWindowSDL::gatherInput()
             if (mKeyVirtualKey == SDLK_RETURN || mKeyVirtualKey == SDLK_KP_ENTER)
                 handleUnicodeUTF16(SDLK_RETURN, gKeyboard->currentMask(FALSE));
             if (!mLanguageTextInputAllowed && isascii(mKeyVirtualKey))
-                mCallbacks->handleUnicodeChar(utf8str_to_wchar(std::string((char)mKeyVirtualKey)), mKeyModifiers);
+                mCallbacks->handleUnicodeChar(utf8str_to_wchar(std::string(1, (char)mKeyVirtualKey)), mKeyModifiers);
             // part of the fix for SL-13243
             if (SDLCheckGrabbyKeys(event.key.keysym.sym, TRUE) != 0)
                 SDLReallyCaptureInput(TRUE);