diff --git a/ChangeLog b/ChangeLog
index b459f7bb2dab26cd95c9e4c3ff2f83aeef50438c..d774a5555f4d2a0def096338d2ae00d930321c71 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2006-02-13	Benedikt Meurer <benny@xfce.org>
+
+	* thunar-vfs/thunar-vfs-volume-hal.c: Properly update volume state
+	  after eject and unmount.
+	* README: List optional HAL dependency.
+
 2006-02-13	Benedikt Meurer <benny@xfce.org>
 
 	* thunar/thunar-dbus-service.c: Print a warning to stderr, instead of
diff --git a/README b/README
index 8b8ecb26cb63cc1eb2d3ffdc79fc558da02a385f..88d871c57d594d64080adab5ad7d7aee5f1f1c26 100644
--- a/README
+++ b/README
@@ -21,6 +21,7 @@ Thunar depends on the following packages:
 Thunar can optionally use the following packages:
 
  - D-BUS 0.34 or above (strongly suggested)
+ - HAL 0.5.0 or above (esp. the libhal-storage devel package)
  - gamin 0.1.0 or above
  - gconf 2.4 or above
  - libjpeg 6 or above
diff --git a/thunar-vfs/thunar-vfs-volume-hal.c b/thunar-vfs/thunar-vfs-volume-hal.c
index 4e3c55fc75bd489176eba0c3b7097e7e3c49d0d4..a94f4e4f6387788a2c7faf16956946bdc52fe2d9 100644
--- a/thunar-vfs/thunar-vfs-volume-hal.c
+++ b/thunar-vfs/thunar-vfs-volume-hal.c
@@ -226,6 +226,16 @@ thunar_vfs_volume_hal_eject (ThunarVfsVolume *volume,
       g_free (standard_error);
     }
 
+  /* check if we were successfull */
+  if (G_LIKELY (result))
+    {
+      /* reset the status */
+      volume_hal->status &= ~(THUNAR_VFS_VOLUME_STATUS_MOUNTED | THUNAR_VFS_VOLUME_STATUS_PRESENT);
+
+      /* emit "changed" on the volume */
+      thunar_vfs_volume_changed (THUNAR_VFS_VOLUME (volume_hal));
+    }
+
   /* cleanup */
   g_free (command_line);
 
@@ -399,6 +409,16 @@ thunar_vfs_volume_hal_unmount (ThunarVfsVolume *volume,
       g_free (standard_error);
     }
 
+  /* check if we were successfull */
+  if (G_LIKELY (result))
+    {
+      /* reset the status */
+      volume_hal->status &= ~THUNAR_VFS_VOLUME_STATUS_MOUNTED;
+
+      /* emit "changed" on the volume */
+      thunar_vfs_volume_changed (THUNAR_VFS_VOLUME (volume_hal));
+    }
+
   /* cleanup */
   g_free (command_line);