Index: src_plugins/hid_gtk/gui-output-events.c =================================================================== --- src_plugins/hid_gtk/gui-output-events.c (revision 1532) +++ src_plugins/hid_gtk/gui-output-events.c (revision 1533) @@ -173,9 +173,12 @@ if (state & GDK_MOD1_MASK) mods |= M_Alt; if (state & GDK_CONTROL_MASK) mods |= M_Ctrl; if (state & GDK_SHIFT_MASK) { - mods |= M_Shift; - if ((kv >= 'A') && (kv <= 'Z')) - kv = tolower(kv); + static const char *ignore_shift = "~!@#$%^&*()_+{}|:\"<>?"; + if ((kv > 32) || (kv < 126) || (strchr(ignore_shift, kv) == NULL)) { + mods |= M_Shift; + if ((kv >= 'A') && (kv <= 'Z')) + kv = tolower(kv); + } } slen = hid_cfg_keys_input(&ghid_keymap, mods, kv, seq, &seq_len);