diff -rU3 coq-8.4.orig/ide/preferences.ml coq-8.4/ide/preferences.ml
--- coq-8.4.orig/ide/preferences.ml	2012-10-13 03:07:00.625841466 +0200
+++ coq-8.4/ide/preferences.ml	2012-10-13 03:08:06.871533536 +0200
@@ -35,6 +35,10 @@
     | `MOD5 -> "<Mod5>"
     | `CONTROL -> "<Control>"
     | `SHIFT -> "<Shift>"
+    | `HYPER -> "HYPER"
+    | `META -> "META"
+    | `RELEASE -> "RELEASE"
+    | `SUPER -> "SUPER"
     |  `BUTTON1| `BUTTON2| `BUTTON3| `BUTTON4| `BUTTON5| `LOCK -> ""
 
 let mod_list_to_str l = List.fold_left (fun s m -> (mod_to_str m)^s) "" l
diff -rU3 coq-8.4.orig/ide/utils/okey.ml coq-8.4/ide/utils/okey.ml
--- coq-8.4.orig/ide/utils/okey.ml	2012-10-13 03:07:00.629174580 +0200
+++ coq-8.4/ide/utils/okey.ml	2012-10-13 03:09:40.225645232 +0200
@@ -47,6 +47,10 @@
   | `BUTTON3 -> 1024
   | `BUTTON4 -> 2048
   | `BUTTON5 -> 4096
+  | `HYPER -> 8192
+  | `META -> 16384
+  | `RELEASE -> 32768
+  | `SUPER -> 65526
 
 let print_modifier l =
   List.iter
