diff --git a/libuiohook/src/darwin/input_hook.c b/libuiohook/src/darwin/input_hook.c
index e6cd6cec9c3c5a26cda5eccc5fe9eb087752eef9..954f0c5fe8ba1325124cf6117d4b66a788c52a60 100644
--- a/libuiohook/src/darwin/input_hook.c
+++ b/libuiohook/src/darwin/input_hook.c
@@ -1149,34 +1149,26 @@ static int create_event_runloop_info(event_runloop_info **hook) {
     }
 
     // Setup the event mask to listen for.
+    // [Backspace patch] Stripped left/right mouse, mouse-move, drag, and scroll
+    // events. Backspace only needs keyboard + mouse buttons 3+ (PTT side buttons).
     CGEventMask event_mask = CGEventMaskBit(kCGEventKeyDown) |
             CGEventMaskBit(kCGEventKeyUp) |
             CGEventMaskBit(kCGEventFlagsChanged) |
 
-            CGEventMaskBit(kCGEventLeftMouseDown) |
-            CGEventMaskBit(kCGEventLeftMouseUp) |
-            CGEventMaskBit(kCGEventLeftMouseDragged) |
-
-            CGEventMaskBit(kCGEventRightMouseDown) |
-            CGEventMaskBit(kCGEventRightMouseUp) |
-            CGEventMaskBit(kCGEventRightMouseDragged) |
-
             CGEventMaskBit(kCGEventOtherMouseDown) |
             CGEventMaskBit(kCGEventOtherMouseUp) |
-            CGEventMaskBit(kCGEventOtherMouseDragged) |
-
-            CGEventMaskBit(kCGEventMouseMoved) |
-            CGEventMaskBit(kCGEventScrollWheel) |
 
             // NOTE This event is undocumented and used
             // for caps-lock release and multi-media keys.
             CGEventMaskBit(NX_SYSDEFINED);
 
     // Create the event tap.
+    // [Backspace patch] Listen-only tap cannot freeze the system — macOS delivers
+    // events asynchronously without waiting for the callback to return.
     (*hook)->port = CGEventTapCreate(
             kCGSessionEventTap,       // kCGHIDEventTap
             kCGHeadInsertEventTap,    // kCGTailAppendEventTap
-            kCGEventTapOptionDefault, // kCGEventTapOptionListenOnly See https://github.com/kwhat/jnativehook/issues/22
+            kCGEventTapOptionListenOnly,
             event_mask,
             hook_event_proc,
             NULL);
