--- /dev/null
+diff --git a/hid-linux.c b/hid-linux.c
+index 59dfec8..f2e0bce 100644
+--- a/hid-linux.c
++++ b/hid-linux.c
+@@ -47,6 +47,7 @@
+ #define ABS(x) ((x) > 0 ? (x) : -(x))
+ #define EVENT_PATH "/dev/input/event"
+ #define HID_LINUX_MAX_DEV 16
++#define HID_LINUX_MAX_DEV_NO 64
+
+ #define DEBUG_HID_LINUX
+
+@@ -447,8 +448,11 @@ void hid_linux_probe(int grab)
+
+ sprintf(path, "%s%i", EVENT_PATH, i++);
+
++ if (i>=HID_LINUX_MAX_DEV_NO)
++ break;
++
+ if (stat(path, &st) == -1)
+- break;
++ continue;
+
+ for ( c = 0; c < HID_LINUX_MAX_DEV && hid_linux_driver.controller_paths[c]; c++)
+ if (!strcmp(hid_linux_driver.controller_paths[c], path))