diff -uNr X11-1.5.0.0.old/Graphics/X11/Xlib/Event.hsc X11-1.5.0.0.new/Graphics/X11/Xlib/Event.hsc
--- X11-1.5.0.0.old/Graphics/X11/Xlib/Event.hsc	2011-11-10 22:49:49.000000000 +0100
+++ X11-1.5.0.0.new/Graphics/X11/Xlib/Event.hsc	2011-11-10 22:50:36.000000000 +0100
@@ -141,11 +141,11 @@
         y               <- #{peek XKeyEvent,y} p
         x_root          <- #{peek XKeyEvent,x_root} p
         y_root          <- #{peek XKeyEvent,y_root} p
-        state           <- #{peek XKeyEvent,state} p
-        keycode         <- #{peek XKeyEvent,keycode} p
+        state           <- (#{peek XKeyEvent,state} p) :: IO CUInt
+        keycode         <- (#{peek XKeyEvent,keycode} p) :: IO CUInt
         same_screen     <- #{peek XKeyEvent,same_screen} p
         return (root, subwindow, time, x, y, x_root, y_root,
-                state, keycode, same_screen)
+                fromIntegral state, fromIntegral keycode, same_screen)
 
 get_KeyEvent :: XEventPtr -> IO XKeyEvent
 get_KeyEvent p = peekXKeyEvent (castPtr p)
diff -uNr X11-1.5.0.0.old/Graphics/X11/Xlib/Extras.hsc X11-1.5.0.0.new/Graphics/X11/Xlib/Extras.hsc
--- X11-1.5.0.0.old/Graphics/X11/Xlib/Extras.hsc	2011-11-10 22:49:49.000000000 +0100
+++ X11-1.5.0.0.new/Graphics/X11/Xlib/Extras.hsc	2011-11-10 22:50:37.000000000 +0100
@@ -378,7 +378,7 @@
             x_root      <- #{peek XKeyEvent, x_root     } p
             y_root      <- #{peek XKeyEvent, y_root     } p
             state       <- (#{peek XKeyEvent, state     } p) :: IO CUInt
-            keycode     <- #{peek XKeyEvent, keycode    } p
+            keycode     <- (#{peek XKeyEvent, keycode   } p) :: IO CUInt
             same_screen <- #{peek XKeyEvent, same_screen} p
             return $ KeyEvent
                         { ev_event_type    = type_
@@ -394,7 +394,7 @@
                         , ev_x_root        = x_root
                         , ev_y_root        = y_root
                         , ev_state         = fromIntegral state
-                        , ev_keycode       = keycode
+                        , ev_keycode       = fromIntegral keycode
                         , ev_same_screen   = same_screen
                         }
 
