diff --git a/indra/llwindow/llopenglview-objc.mm b/indra/llwindow/llopenglview-objc.mm
index 1b5804ec83dad11b8fc37a069834a036bb11d1e8..06b96dd1ead09db38dfe2dcdea82556db5c950b1 100644
--- a/indra/llwindow/llopenglview-objc.mm
+++ b/indra/llwindow/llopenglview-objc.mm
@@ -133,6 +133,10 @@ attributedStringInfo getSegments(NSAttributedString *str)
     [[NSNotificationCenter defaultCenter] addObserver:self
 											 selector:@selector(windowDidDeminiaturize:) name:NSWindowDidDeminiaturizeNotification
 											   object:[self window]];
+    
+    [[NSNotificationCenter defaultCenter] addObserver:self
+											 selector:@selector(windowDidBecomeKey:) name:NSWindowDidBecomeKeyNotification
+											   object:[self window]];
 }
 
 - (void)setOldResize:(bool)oldresize
@@ -159,6 +163,11 @@ attributedStringInfo getSegments(NSAttributedString *str)
     callWindowUnhide();
 }
 
+- (void)windowDidBecomeKey:(NSNotification *)notification;
+{
+    mModifiers = [NSEvent modifierFlags];
+}
+
 - (void)dealloc
 {
 	[[NSNotificationCenter defaultCenter] removeObserver:self];