--- nautilus-file-operations.c.orig	2006-09-11 13:41:21.000000000 +0200
+++ nautilus-file-operations.c	2006-09-11 13:39:31.000000000 +0200
@@ -1426,7 +1426,12 @@
 
 	g_assert (name[0] != '\0');
 	
-	*suffix = strchr (name + 1, '.');
+	/* Locate the last occurrence of '.' in str: while copying a file that has several
+	* '.' in it, we want to append the copy string before the last one (bug #351290).
+	*/
+
+	*suffix = strrchr (name + 1, '.');
+
 	if (*suffix == NULL || (*suffix)[1] == '\0') {
 		/* no suffix */
 		*suffix = "";
