diff --git a/gdk/quartz/gdkkeys-quartz.c b/gdk/quartz/gdkkeys-quartz.c
index a034bbd..5bc9bf5 100644
--- a/gdk/quartz/gdkkeys-quartz.c
+++ b/gdk/quartz/gdkkeys-quartz.c
@@ -812,9 +812,15 @@ 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];
   int i;
+
+  if ((flags & NSFunctionKeyMask) &&
+      (flags & NSControlKeyMask) &&
+      keycode == 120) {
+    return GDK_NOTHING;
+  }
   
   switch ([event type])
     {
@@ -830,9 +836,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)
