diff --git a/gdk/quartz/gdkkeys-quartz.c b/gdk/quartz/gdkkeys-quartz.c
index a034bbd..e81ea4d 100644
--- a/gdk/quartz/gdkkeys-quartz.c
+++ b/gdk/quartz/gdkkeys-quartz.c
@@ -812,9 +812,41 @@ gdk_keymap_map_virtual_modifiers (GdkKeymap       *keymap,
 GdkEventType
 _gdk_quartz_keys_event_type (NSEvent *event)
 {
-  unsigned short keycode;
-  unsigned int flags;
+  unsigned short keycode = [event keyCode];
+  unsigned int flags = [event modifierFlags];
+  CFArrayRef global_keys = NULL;
+  unsigned int eventmods = (flags & NSCommandKeyMask ? cmdKey : 0) |
+                           (flags & NSAlternateKeyMask ? optionKey : 0) |
+                           (flags & NSControlKeyMask ? controlKey : 0) |
+                           (flags & NSShiftKeyMask ? shiftKey : 0);
   int i;
+
+  if (CopySymbolicHotKeys (&global_keys) == noErr && global_keys != NULL)
+    {
+      CFIndex length = CFArrayGetCount (global_keys);
+
+      for (i = 0; i < length; i++)
+	{
+	  CFDictionaryRef key_info = CFArrayGetValueAtIndex (global_keys, i);
+
+	  CFNumberRef code = CFDictionaryGetValue (key_info, kHISymbolicHotKeyCode);
+	  CFNumberRef mods = CFDictionaryGetValue (key_info, kHISymbolicHotKeyModifiers);
+	  CFBooleanRef enabled = CFDictionaryGetValue (key_info, kHISymbolicHotKeyEnabled);
+
+	  gint32 mod_value;
+	  gushort tmp_keycode;
+
+	  CFNumberGetValue (mods, kCFNumberSInt32Type, &mod_value);
+	  CFNumberGetValue (code, kCFNumberShortType, &tmp_keycode);
+
+	  if (CFBooleanGetValue (enabled) && keycode == tmp_keycode && mod_value == eventmods)
+	    {
+	      return GDK_NOTHING;
+	    }
+	}
+    }
+
+    CFRelease (global_keys);
   
   switch ([event type])
     {
@@ -830,9 +862,6 @@ _gdk_quartz_keys_event_type (NSEvent *event)
   
   /* For flags-changed events, we have to find the special key that caused the
    * event, and see if it's in the modifier mask. */
-  keycode = [event keyCode];
-  flags = [event modifierFlags];
-  
   for (i = 0; i < G_N_ELEMENTS (modifier_keys); i++)
     {
       if (modifier_keys[i].keycode == keycode)
