diff --git a/test/interactive-x11.c b/test/interactive-x11.c
index 8679dda..6926091 100644
--- a/test/interactive-x11.c
+++ b/test/interactive-x11.c
@@ -235,7 +235,18 @@ process_event(xcb_generic_event_t *gevent, struct keyboard *kbd)
     case XCB_KEY_PRESS: {
         xcb_key_press_event_t *event = (xcb_key_press_event_t *) gevent;
         xkb_keycode_t keycode = event->detail;
+        printf("XCB_KEY_PRESS....\n");
+        test_print_keycode_state(kbd->state, keycode);
 
+        /* Exit on ESC. */
+        if (keycode == 9)
+            terminate = true;
+        break;
+    }
+    case XCB_KEY_RELEASE: {
+        xcb_key_release_event_t *event = (xcb_key_release_event_t *) gevent;
+        xkb_keycode_t keycode = event->detail;
+        printf("XCB_KEY_RELEASE....\n");
         test_print_keycode_state(kbd->state, keycode);
 
         /* Exit on ESC. */
@@ -292,7 +303,7 @@ create_capture_window(xcb_connection_t *conn)
     xcb_window_t window = xcb_generate_id(conn);
     uint32_t values[2] = {
         screen->white_pixel,
-        XCB_EVENT_MASK_KEY_PRESS,
+        XCB_EVENT_MASK_KEY_PRESS | XCB_EVENT_MASK_KEY_RELEASE,
     };
 
     cookie = xcb_create_window_checked(conn, XCB_COPY_FROM_PARENT,
