diff -ruN hotplug-2004_03_29.orig/etc/hotplug/firmware.agent hotplug-2004_03_29/etc/hotplug/firmware.agent
--- hotplug-2004_03_29.orig/etc/hotplug/firmware.agent	2005-02-14 15:51:24.000000000 +0100
+++ hotplug-2004_03_29/etc/hotplug/firmware.agent	2005-02-14 15:51:18.000000000 +0100
@@ -23,7 +23,7 @@
 FIRMWARE_DIRS="/lib/firmware /usr/local/lib/firmware /usr/lib/hotplug/firmware"
 
 # mountpoint of sysfs
-SYSFS=$(sed -n 's/^.* \([^ ]*\) sysfs .*$/\1/p' /proc/mounts)
+SYSFS=$(sed -n 's/^.* \([^ ]*\) sysfs .*$/\1/p' /proc/mounts | sed -e '2,$d')
 
 # use /proc for 2.4 kernels
 if [ "$SYSFS" = "" ]; then
@@ -36,8 +36,15 @@
 case "$ACTION" in
 
 add)
-    if [ ! -e $SYSFS/$DEVPATH/loading ]; then
+    counter=5
+    while [ ! -e $SYSFS/$DEVPATH/loading -a $counter -gt 0 ]; do
         sleep 1
+	counter=$(($counter - 1))
+    done
+
+    if [ $counter -eq 0 ]; then
+	mesg "$SYSFS/$DEVPATH/ does not exist"
+	exit 1
     fi
 
     for DIR in $FIRMWARE_DIRS; do
