       # basic ASCII character.
       if process.platform is 'darwin' and event.code
         nonAltModifiedKey = nonAltModifiedKeyForKeyboardEvent(event)
-        if ctrlKey or metaKey or not isASCIICharacter(key)
+        if nonAltModifiedKey and (ctrlKey or metaKey or not isASCIICharacter(key))
           key = nonAltModifiedKey
         else if key isnt nonAltModifiedKey
           altKey = false

      # fall back to the non-alt-modified character.
      else if process.platform is 'linux'
        nonAltModifiedKey = nonAltModifiedKeyForKeyboardEvent(event)
        if (ctrlKey or altKey or metaKey) and nonAltModifiedKey
          key = nonAltModifiedKey
          altKey = event.getModifierState('AltGraph')


      # intepretation.
      else if process.platform is 'win32' and event.code
        nonAltModifiedKey = nonAltModifiedKeyForKeyboardEvent(event)
        if nonAltModifiedKey and metaKey
          key = nonAltModifiedKey
        else if key isnt nonAltModifiedKey
          ctrlKey = false
