diff -ur nautilus-2.20.0.orig/src/file-manager/fm-directory-view.c nautilus-2.20.0/src/file-manager/fm-directory-view.c
--- nautilus-2.20.0.orig/src/file-manager/fm-directory-view.c	2007-10-20 20:32:15.000000000 +0200
+++ nautilus-2.20.0/src/file-manager/fm-directory-view.c	2007-10-20 20:38:31.000000000 +0200
@@ -3759,6 +3759,7 @@
 	GnomeVFSURI *file_uri;
 	GnomeVFSURI *directory_uri;
 	GnomeVFSURI *trash_dir_uri;
+	GnomeVFSVolume *volume;
 	gboolean result;
 
 	g_return_val_if_fail (FM_IS_DIRECTORY_VIEW (view), FALSE);
@@ -3778,17 +3779,29 @@
 		return FALSE;
 	}
 
-	/*
-	 * Create a new trash if needed but don't go looking for an old Trash.
-	 * Passing 0 permissions as gnome-vfs would override the permissions 
-	 * passed with 700 while creating .Trash directory
-	 */
-	result = gnome_vfs_find_directory (directory_uri, GNOME_VFS_DIRECTORY_KIND_TRASH,
-					   &trash_dir_uri, TRUE, FALSE, 0) == GNOME_VFS_OK;
+	/* we first test if the filesystem can have a trash */
+	volume = gnome_vfs_volume_monitor_get_volume_for_path (gnome_vfs_get_volume_monitor (), file_uri_string);
+
+	if (volume == NULL) {
+		return FALSE;
+	}
+
+	result = gnome_vfs_volume_handles_trash (volume);
+	gnome_vfs_volume_unref (volume);
+
 	if (result) {
-		gnome_vfs_uri_unref (trash_dir_uri);
+		/*
+		 * Create a new trash if needed but don't go looking for an old Trash.
+		 * Passing 0 permissions as gnome-vfs would override the permissions 
+		 * passed with 700 while creating .Trash directory
+		 */
+		result = gnome_vfs_find_directory (directory_uri, GNOME_VFS_DIRECTORY_KIND_TRASH,
+						   &trash_dir_uri, TRUE, FALSE, 0) == GNOME_VFS_OK;
+		if (result) {
+			gnome_vfs_uri_unref (trash_dir_uri);
+		}
+		gnome_vfs_uri_unref (directory_uri);
 	}
-	gnome_vfs_uri_unref (directory_uri);
 
 	return result;
 }
