This is caused by stale entries in /media/.hal-mtab confusing /usr/lib/hal/hal-storage-unmount. It calls umount(8) with the device name, but when it tries to remove the directory it uses the directory name in the first entry matching the device name, which fails. The directory is later removed by /usr/lib/hal/hal-storage-cleanup-mountpoint, which for some reason manages to find the right entry in /media/.hal-mtab.
This is caused by stale entries in /media/.hal-mtab confusing /usr/lib/ hal/hal- storage- unmount. It calls umount(8) with the device name, but when it tries to remove the directory it uses the directory name in the first entry matching the device name, which fails. The directory is later removed by /usr/lib/ hal/hal- storage- cleanup- mountpoint, which for some reason manages to find the right entry in /media/.hal-mtab.