--- file-roller-2.28.1/src/fr-archive.c.orig	2009-10-19 18:53:45.000000000 +0100
+++ file-roller-2.28.1/src/fr-archive.c	2009-11-07 17:28:29.635933542 +0000
@@ -2122,12 +2122,17 @@
 move_files_to_dir (FrArchive  *archive,
 		   GList      *file_list,
 		   const char *source_dir,
-		   const char *dest_dir)
+		   const char *dest_dir,
+		   gboolean clobber)
 {
 	GList *scan;
 
-	fr_process_begin_command (archive->process, "mv");
-	fr_process_add_arg (archive->process, "-f");
+	fr_process_begin_command (archive->process, "cp");
+	fr_process_add_arg (archive->process, "-r");
+	if (clobber)
+		fr_process_add_arg (archive->process, "-f");
+	else
+		fr_process_add_arg (archive->process, "-n");
 	for (scan = file_list; scan; scan = scan->next) {
 		char *filename = scan->data;
 		if (filename[0] == '/')
@@ -2144,7 +2149,8 @@
 move_files_in_chunks (FrArchive  *archive,
 		      GList      *file_list,
 		      const char *temp_dir,
-		      const char *dest_dir)
+		      const char *dest_dir,
+		      gboolean clobber)
 {
 	GList *scan;
 	int    temp_dir_l;
@@ -2168,7 +2174,7 @@
 		}
 
 		prev->next = NULL;
-		move_files_to_dir (archive, chunk_list, temp_dir, dest_dir);
+		move_files_to_dir (archive, chunk_list, temp_dir, dest_dir, clobber);
 		prev->next = scan;
 	}
 }
@@ -2580,7 +2586,8 @@
 		move_files_in_chunks (archive,
 				      filtered,
 				      temp_dir,
-				      destination);
+				      destination,
+				      overwrite);
 
 		/* remove the temp dir. */
 
