diff --git a/gdk/quartz/gdkkeys-quartz.c b/gdk/quartz/gdkkeys-quartz.c
index 6af6718..c07b68f 100644
--- a/gdk/quartz/gdkkeys-quartz.c
+++ b/gdk/quartz/gdkkeys-quartz.c
@@ -182,7 +182,40 @@ const static struct {
   { 0x001d, GDK_KEY_Right },
   { 0x001e, GDK_KEY_Up },
   { 0x001f, GDK_KEY_Down },
-  { 0x007f, GDK_KEY_Delete }
+  { 0x007f, GDK_KEY_Delete },
+  { 0x0300, GDK_KEY_dead_grave },
+  { 0x0301, GDK_KEY_dead_acute },
+  { 0x0302, GDK_KEY_dead_circumflex },
+  { 0x0303, GDK_KEY_dead_tilde },
+  { 0x0342, GDK_KEY_dead_perispomeni },
+  { 0x0304, GDK_KEY_dead_macron },
+  { 0x0306, GDK_KEY_dead_breve },
+  { 0x0307, GDK_KEY_dead_abovedot },
+  { 0x0308, GDK_KEY_dead_diaeresis },
+  { 0x030A, GDK_KEY_dead_abovering },
+  { 0x030B, GDK_KEY_dead_doubleacute },
+  { 0x030C, GDK_KEY_dead_caron },
+  { 0x0327, GDK_KEY_dead_cedilla },
+  { 0x0328, GDK_KEY_dead_ogonek },
+  { 0xfe5d, GDK_KEY_dead_iota },
+  { 0x0323, GDK_KEY_dead_belowdot },
+  { 0x0309, GDK_KEY_dead_hook },
+  { 0x031B, GDK_KEY_dead_horn },
+  { 0x0335, GDK_KEY_dead_stroke },
+  { 0x0336, GDK_KEY_dead_stroke },
+  { 0x0313, GDK_KEY_dead_abovecomma },
+  { 0x0313, GDK_KEY_dead_psili },
+  { 0x0314, GDK_KEY_dead_abovereversedcomma },
+  { 0x0314, GDK_KEY_dead_dasia },
+  { 0x030F, GDK_KEY_dead_doublegrave },
+  { 0x0325, GDK_KEY_dead_belowring },
+  { 0x0331, GDK_KEY_dead_belowmacron },
+  { 0x032D, GDK_KEY_dead_belowcircumflex },
+  { 0x0330, GDK_KEY_dead_belowtilde },
+  { 0x032E, GDK_KEY_dead_belowbreve },
+  { 0x0324, GDK_KEY_dead_belowdiaeresis },
+  { 0x0311, GDK_KEY_dead_invertedbreve },
+  { 0x0326, GDK_KEY_dead_belowcomma }
 };
 typedef struct _KBLayout KBLayout;
 static UniChar get_keyvalue_uchr(KBLayout *layout, int key, UInt32 modifiers);
