diff -urN xf86-input-evdev-2.4.0/src/evdev.c xf86-input-evdev-2.4.0-orig/src/evdev.c --- xf86-input-evdev-2.4.0/src/evdev.c 2010-03-23 23:50:54.000000000 +0200 +++ xf86-input-evdev-2.4.0-orig/src/evdev.c 2010-10-02 21:03:20.543642247 +0300 @@ -279,6 +279,15 @@ EventQueuePtr pQueue; EvdevPtr pEvdev = pInfo->private; + /* fix events for volume keys, no release key sent + so emulate release. + */ + if ((KEY_VOLUMEUP == ev->code) || (KEY_VOLUMEDOWN == ev->code)) { + xf86PostKeyboardEvent(pInfo->dev, code, 1); + xf86PostKeyboardEvent(pInfo->dev, code, 0); + return; + } + /* Filter all repeated events from device. We'll do softrepeat in the server, but only since 1.6 */ if (value == 2