diff --git a/libnautilus-private/nautilus-file-conflict-dialog.c b/libnautilus-private/nautilus-file-conflict-dialog.c
index e6874a5..e46e22e 100644
--- a/libnautilus-private/nautilus-file-conflict-dialog.c
+++ b/libnautilus-private/nautilus-file-conflict-dialog.c
@@ -69,24 +69,6 @@ G_DEFINE_TYPE (NautilusFileConflictDialog,
 	(G_TYPE_INSTANCE_GET_PRIVATE ((object), NAUTILUS_TYPE_FILE_CONFLICT_DIALOG, \
 				      NautilusFileConflictDialogDetails))
 
-static const gchar *
-get_str_for_mtimes (NautilusFile *src,
-		    NautilusFile *dest)
-{
-	time_t src_mtime, dest_mtime;
-
-	src_mtime = nautilus_file_get_mtime (src);
-	dest_mtime = nautilus_file_get_mtime (dest);
-
-	if (src_mtime > dest_mtime)
-		return _("An older");
-
-	if (src_mtime < dest_mtime)
-		return _("A newer");
-
-	return _("Another");
-}
-
 static void
 file_icons_changed (NautilusFile *file,
 		    NautilusFileConflictDialog *fcd)
@@ -116,14 +98,14 @@ file_list_ready_cb (GList *files,
 {
 	NautilusFileConflictDialog *fcd = user_data;
 	NautilusFile *src, *dest, *dest_dir;
+	time_t src_mtime, dest_mtime;
 	GtkDialog *dialog;
 	gboolean source_is_dir,	dest_is_dir, should_show_type;
 	NautilusFileConflictDialogDetails *details;
-	char *primary_text, *secondary_text;
+	char *primary_text, *secondary_text, *secondary_text_extra;
 	char *src_name, *dest_name, *dest_dir_name, *edit_name;
 	char *label_text;
 	char *size, *date, *type = NULL;
-	const gchar *time_str;
 	GdkPixbuf *pixbuf;
 	GtkWidget *label;
 	GString *str;
@@ -138,6 +120,9 @@ file_list_ready_cb (GList *files,
 	dest = g_list_nth_data (files, 1);
 	src = g_list_nth_data (files, 2);
 
+	src_mtime = nautilus_file_get_mtime (src);
+	dest_mtime = nautilus_file_get_mtime (dest);
+
 	src_name = nautilus_file_get_display_name (src);
 	dest_name = nautilus_file_get_display_name (dest);
 	dest_dir_name = nautilus_file_get_display_name (dest_dir);
@@ -151,7 +136,6 @@ file_list_ready_cb (GList *files,
 	g_free (type);
 	type = NULL;
 
-	time_str = get_str_for_mtimes (src, dest);
 	/* Set up the right labels */
 	if (dest_is_dir) {
 		if (source_is_dir) {
@@ -159,16 +143,28 @@ file_list_ready_cb (GList *files,
 				(_("Merge folder \"%s\"?"),
 				 dest_name);
 
-			/* Translators: the first string in this printf
-			 * is the "An older/A newer/Another" string defined some lines before.
-			 */
-			secondary_text = g_strdup_printf (
-				_("%s folder with the same name already exists in \"%s\".\n"
-				  "Merging will ask for confirmation before "
-				  "replacing any files in the folder that "
-				  "conflict with the files being copied."),
-				time_str,
-				dest_dir_name);
+			secondary_text_extra = 
+				_("Merging will ask for confirmation before replacing any files in "
+				  "the folder that conflict with the files being copied.");
+
+			if (src_mtime > dest_mtime)
+				secondary_text = g_strdup_printf (
+					/* Translators: the second %s will be replaced by the
+					 * explanation about merging above. */
+					_("An older folder with the same name already exists in \"%s\".\n\n%s"),
+					dest_dir_name, secondary_text_extra);
+			else if (src_mtime < dest_mtime)
+				secondary_text = g_strdup_printf (
+					/* Translators: the second %s will be replaced by the
+					 * explanation about merging above. */
+					_("A newer folder with the same name already exists in \"%s\".\n\n%s"),
+					dest_dir_name, secondary_text_extra);
+			else
+				secondary_text = g_strdup_printf (
+					/* Translators: the second %s will be replaced by the
+					 * explanation about merging above. */
+					_("Another folder with the same name already exists in \"%s\".\n\n%s"),
+					dest_dir_name, secondary_text_extra);
 		} else {
 			primary_text = g_strdup_printf
 				(_("Replace folder \"%s\"?"), dest_name);
@@ -181,14 +177,26 @@ file_list_ready_cb (GList *files,
 		primary_text = g_strdup_printf
 			(_("Replace file \"%s\"?"), dest_name);
 
-		/* Translators: the first string in this printf
-		 * is the "An older/A newer/Another" string defined some lines before.
-		 */
-		secondary_text = g_strdup_printf (
-			_("%s file with the same name already exists in \"%s\".\n"
-			  "Replacing it will overwrite its content."),
-			time_str,
-			dest_dir_name);
+		secondary_text_extra = _("Replacing it will overwrite its content.");
+
+		if (src_mtime > dest_mtime)
+			secondary_text = g_strdup_printf (
+				/* Translators: the second %s will be replaced by the
+				 * explanation about overwriting contents a file above. */
+				_("An older file with the same name already exists in \"%s\".\n\n%s"),
+				dest_dir_name, secondary_text_extra);
+		else if (src_mtime < dest_mtime)
+			secondary_text = g_strdup_printf (
+				/* Translators: the second %s will be replaced by the
+				 * explanation about overwriting contents a file above. */
+				_("A newer file with the same name already exists in \"%s\".\n\n%s"),
+				dest_dir_name, secondary_text_extra);
+		else
+			secondary_text = g_strdup_printf (
+				/* Translators: the second %s will be replaced by the
+				 * explanation about overwriting contents a file above. */
+				_("Another file with the same name already exists in \"%s\".\n\n%s"),
+				dest_dir_name, secondary_text_extra);
 	}
 
 	label = gtk_label_new (primary_text);
