diff --git a/src/events.c b/src/events.c
index f83819382b73fbf2a86b1715582e47d62ebe639a..9be70169dbb99fac00aa2ee0d664b47040911b1b 100644
--- a/src/events.c
+++ b/src/events.c
@@ -343,7 +343,7 @@ handleKeyPress (DisplayInfo *display_info, XKeyEvent * ev)
     TRACE ("entering handleKeyEvent");
 
     /* Release queued events */
-    XAllowEvents (display_info->dpy, AsyncKeyboard, CurrentTime);
+    XAllowEvents (display_info->dpy, AsyncKeyboard, ev->time);
 
     status = EVENT_FILTER_PASS;
     ev_screen_info = myDisplayGetScreenFromRoot (display_info, ev->root);
@@ -1002,7 +1002,7 @@ handleButtonPress (DisplayInfo *display_info, XButtonEvent * ev)
                     clientRaise (c, None);
                 }
             }
-            XAllowEvents (display_info->dpy, ReplayPointer, CurrentTime);
+            XAllowEvents (display_info->dpy, ReplayPointer, ev->time);
         }
 
         return EVENT_FILTER_REMOVE;
diff --git a/src/keyboard.c b/src/keyboard.c
index e16a2ab833198a294f615120823ab1062167f378..95c94d26ba80fae24d984471e5cb330c895bac15 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -175,35 +175,35 @@ grabKey (Display * dpy, MyKey * key, Window w)
             status |=
                 XGrabKey (dpy, key->keycode,
                                         key->modifier, w,
-                                        TRUE, GrabModeAsync, GrabModeSync);
+                                        TRUE, GrabModeAsync, GrabModeAsync);
             status |=
                 XGrabKey (dpy, key->keycode,
                                         key->modifier | ScrollLockMask, w,
-                                        TRUE, GrabModeAsync, GrabModeSync);
+                                        TRUE, GrabModeAsync, GrabModeAsync);
             status |=
                 XGrabKey (dpy, key->keycode,
                                         key->modifier | NumLockMask, w,
-                                        TRUE, GrabModeAsync, GrabModeSync);
+                                        TRUE, GrabModeAsync, GrabModeAsync);
             status |=
                 XGrabKey (dpy, key->keycode,
                                         key->modifier | LockMask, w,
-                                        TRUE, GrabModeAsync, GrabModeSync);
+                                        TRUE, GrabModeAsync, GrabModeAsync);
             status |=
                 XGrabKey (dpy, key->keycode,
                                         key->modifier | ScrollLockMask | NumLockMask, w,
-                                        TRUE, GrabModeAsync, GrabModeSync);
+                                        TRUE, GrabModeAsync, GrabModeAsync);
             status |=
                 XGrabKey (dpy, key->keycode,
                                         key->modifier | ScrollLockMask | LockMask, w,
-                                        TRUE, GrabModeAsync, GrabModeSync);
+                                        TRUE, GrabModeAsync, GrabModeAsync);
             status |=
                 XGrabKey (dpy, key->keycode,
                                         key->modifier | LockMask | NumLockMask, w,
-                                        TRUE, GrabModeAsync, GrabModeSync);
+                                        TRUE, GrabModeAsync, GrabModeAsync);
             status |=
                 XGrabKey (dpy, key->keycode,
                                         key->modifier | ScrollLockMask | LockMask | NumLockMask, w,
-                                        TRUE, GrabModeAsync, GrabModeSync);
+                                        TRUE, GrabModeAsync, GrabModeAsync);
         }
     }