diff --git a/autobuild.xml b/autobuild.xml
index 119f5210c5..bbde87837b 100644
--- a/autobuild.xml
+++ b/autobuild.xml
@@ -3232,9 +3232,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors
archive
name
darwin64
@@ -3268,9 +3268,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors
archive
name
windows
@@ -3280,9 +3280,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors
archive
name
windows64
diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp
index 620b56f781..bdbca80946 100644
--- a/indra/newview/llviewerwindow.cpp
+++ b/indra/newview/llviewerwindow.cpp
@@ -3335,7 +3335,8 @@ BOOL LLViewerWindow::handleKey(KEY key, MASK mask)
// ToUnicodeEx changes buffer state on OS below Win10, which is undesirable,
// but since we already did a TranslateMessage() in gatherInput(), this
// should have no negative effect
- int res = ToUnicodeEx(key, 0, keyboard_state, chars, char_count, 1 << 2 /*do not modify buffer flag*/, layout);
+ // ToUnicodeEx works with virtual key codes
+ int res = ToUnicodeEx(raw_key, 0, keyboard_state, chars, char_count, 1 << 2 /*do not modify buffer flag*/, layout);
if (res == 1 && chars[0] >= 0x20)
{
// Let it fall through to character handler and get a WM_CHAR.