Index: muffin/src/core/keybindings.c =================================================================== --- muffin.orig/src/core/keybindings.c 2014-07-12 11:14:43.726606468 +0200 +++ muffin/src/core/keybindings.c 2014-10-25 19:43:34.635326714 +0200 @@ -1639,6 +1639,15 @@ else if (event->xkey.type == KeyPress && event->xkey.keycode == display->overlay_key_combo.keycode) { + /* Check if the mask also matches */ + unsigned int combo_mask; + meta_display_devirtualize_modifiers (display, + display->overlay_key_combo.modifiers, + &combo_mask); + unsigned int event_mask = event->xkey.state & 0xff & + ~display->ignored_modifier_mask; + if (event_mask != combo_mask) return FALSE; + display->overlay_key_only_pressed = TRUE; /* We keep the keyboard frozen - this allows us to use ReplayKeyboard * on the next event if it's not the release of the overlay key */ @@ -1675,7 +1684,6 @@ gboolean handled; const char *str; MetaScreen *screen; - if (all_bindings_disabled) { /* In this mode, we try to pretend we don't have grabs, so we