--- hald/linux/blockdev.c 2009-09-09 05:10:45.000000000 +0530 +++ hald/linux/blockdev.c 2009-09-09 05:17:52.000000000 +0530 @@ -675,9 +675,17 @@ if (target != NULL) { HalDevice *slave_volume; + char *ftarget = g_strconcat (target, "/fakevolume", NULL); slave_volume = hal_device_store_match_key_value_string (hald_get_gdl (), "linux.sysfs_path", - target); + ftarget); + g_free (ftarget); + + // We are probably looking at a crypto partition, rather than blockdevice. + if (slave_volume == NULL) { + slave_volume = hal_device_store_match_key_value_string (hald_get_gdl (), "linux.sysfs_path", target); + } + if (slave_volume != NULL) { const char *slave_volume_stordev_udi; const char *slave_volume_fstype;