diff -Nur gnome-vfs2-2.20.0/libgnomevfs/gnome-vfs-cancellable-ops.c gnome-vfs2-2.20.0.new/libgnomevfs/gnome-vfs-cancellable-ops.c
--- gnome-vfs2-2.20.0/libgnomevfs/gnome-vfs-cancellable-ops.c	2007-09-17 19:00:46.000000000 +0200
+++ gnome-vfs2-2.20.0.new/libgnomevfs/gnome-vfs-cancellable-ops.c	2007-10-21 20:50:23.000000000 +0200
@@ -285,7 +285,7 @@
 				      GnomeVFSContext *context)
 {
 	GnomeVFSResult result;
-	GnomeVFSURI *resolved_uri;
+	GnomeVFSURI *resolved_uri, *parent_uri;
 
 	g_return_val_if_fail (result_uri != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS);
 
@@ -323,7 +323,13 @@
 	 * we want to look at the device the symlink points to, not the one the
 	 * symlink is stored on
 	 */
+	parent_uri = gnome_vfs_uri_get_parent (near_uri);
+	if (parent_uri) {
+		gnome_vfs_uri_unref (near_uri);
+		near_uri = parent_uri;
+	}
 	result = _gnome_vfs_uri_resolve_all_symlinks_uri (near_uri, &resolved_uri);
+
 	if (result == GNOME_VFS_OK) {
 		gnome_vfs_uri_unref (near_uri);
 		near_uri = resolved_uri;
