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;