diff --git a/indra/llwindow/llwindowwin32.cpp b/indra/llwindow/llwindowwin32.cpp
index 9feccd787457c3f79b6b7c78a1456073aa3d0510..26e624c6ec4d4fd655ed95caebc38339acbb3254 100644
--- a/indra/llwindow/llwindowwin32.cpp
+++ b/indra/llwindow/llwindowwin32.cpp
@@ -2426,7 +2426,7 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_
             LL_PROFILE_ZONE_NAMED_CATEGORY_WIN32("mwp - WM_SYSKEYDOWN");
             // allow system keys, such as ALT-F4 to be processed by Windows
             eat_keystroke = FALSE;
-            break;
+            // intentional fall-through here
         }
         case WM_KEYDOWN:
         {
@@ -2451,10 +2451,12 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_
                         gKeyboard->handleKeyDown(w_param, mask);
                     }
                 });
-                return eat_keystroke;
+            if (eat_keystroke) return 0;    // skip DefWindowProc() handling if we're consuming the keypress 
+            break;
         }
         case WM_SYSKEYUP:
             eat_keystroke = FALSE;
+            // intentional fall-through here
         case WM_KEYUP:
         {
             LL_PROFILE_ZONE_NAMED_CATEGORY_WIN32("mwp - WM_KEYUP");
@@ -2478,7 +2480,8 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_
                     gKeyboard->handleKeyUp(w_param, mask);
                 }
             });
-            return eat_keystroke;
+            if (eat_keystroke) return 0;    // skip DefWindowProc() handling if we're consuming the keypress 
+            break;
         }
         case WM_IME_SETCONTEXT:
         {