Index: libnautilus-private/nautilus-dnd.c =================================================================== --- libnautilus-private/nautilus-dnd.c (revision 15162) +++ libnautilus-private/nautilus-dnd.c (revision 15163) @@ -437,7 +437,7 @@ gboolean target_is_source_parent; gboolean source_deletable; const char *dropped_uri; - GFile *target, *dropped; + GFile *target, *dropped, *dropped_directory; GdkDragAction actions; NautilusFile *dropped_file, *target_file; @@ -519,7 +519,16 @@ /* Compare the first dropped uri with the target uri for same fs match. */ dropped = g_file_new_for_uri (dropped_uri); - target_is_source_parent = g_file_has_prefix (dropped, target); + dropped_directory = g_file_get_parent (dropped); + target_is_source_parent = FALSE; + if (dropped_directory != NULL) { + /* If the dropped file is already in the same directory but + is in another filesystem we still want to move, not copy + as this is then just a move of a mountpoint to another + position in the dir */ + target_is_source_parent = g_file_equal (dropped_directory, target); + g_object_unref (dropped_directory); + } source_deletable = source_is_deletable (dropped); if ((same_fs && source_deletable) || target_is_source_parent ||