--- ntfsprogs/ntfsundelete.c.ref	2017-03-23 10:42:44.000000000 +0100
+++ ntfsprogs/ntfsundelete.c	2018-04-27 10:21:44.615919800 +0200
@@ -5,7 +5,7 @@
  * Copyright (c) 2004-2005 Holger Ohmacht
  * Copyright (c) 2005      Anton Altaparmakov
  * Copyright (c) 2007      Yura Pakhuchiy
- * Copyright (c) 2013-2014 Jean-Pierre Andre
+ * Copyright (c) 2013-2018 Jean-Pierre Andre
  *
  * This utility will recover deleted files from an NTFS volume.
  *
@@ -392,7 +392,7 @@
 			"Copyright (c) 2004-2005 Holger Ohmacht\n"
 			"Copyright (c) 2005      Anton Altaparmakov\n"
 			"Copyright (c) 2007      Yura Pakhuchiy\n"
-			"Copyright (c) 2013-2014 Jean-Pierre Andre\n");
+			"Copyright (c) 2013-2018 Jean-Pierre Andre\n");
 	ntfs_log_info("\n%s\n%s%s\n", ntfs_gpl, ntfs_bugs, ntfs_home);
 }
 
@@ -1835,6 +1835,11 @@
 static int create_pathname(const char *dir, const char *name,
 	const char *stream, char *buffer, int bufsize)
 {
+	struct stat st;
+	int s;
+	int len;
+	int suffix;
+
 	if (!name)
 		name = UNKNOWN;
 
@@ -1848,6 +1853,14 @@
 			snprintf(buffer, bufsize, "%s:%s", name, stream);
 		else
 			snprintf(buffer, bufsize, "%s", name);
+	len = strlen(buffer);
+	suffix = 0;
+	s = lstat(buffer, &st);
+	while (!s && (suffix < 999)) {
+		suffix++;
+		snprintf(&buffer[len], bufsize - len, ".%d", suffix);
+		s = lstat(buffer, &st);
+	}
 
 	return strlen(buffer);
 }
@@ -2012,7 +2025,8 @@
 		if (d->resident) {
 			fd = open_file(pathname);
 			if (fd < 0) {
-				ntfs_log_perror("Couldn't create file");
+				ntfs_log_perror("Couldn't create file %s",
+						pathname);
 				goto free;
 			}
 
@@ -2041,7 +2055,8 @@
 
 			fd = open_file(pathname);
 			if (fd < 0) {
-				ntfs_log_perror("Couldn't create output file");
+				ntfs_log_perror("Couldn't create file %s",
+						pathname);
 				goto free;
 			}
 
@@ -2151,9 +2166,11 @@
 		}
 		set_date(pathname, file->date);
 		if (d->name)
-			ntfs_log_quiet("Undeleted '%s:%s' successfully.\n", file->pref_name, d->name);
+			ntfs_log_quiet("Undeleted '%s:%s' successfully to %s.\n",
+					file->pref_name, d->name, pathname);
 		else
-			ntfs_log_quiet("Undeleted '%s' successfully.\n", file->pref_name);
+			ntfs_log_quiet("Undeleted '%s' successfully to %s.\n",
+					file->pref_name, pathname);
 	}
 	result = 1;
 free:
@@ -2348,7 +2365,7 @@
 	create_pathname(opts.dest, name, NULL, pathname, sizeof(pathname));
 	fd = open_file(pathname);
 	if (fd < 0) {
-		ntfs_log_perror("Couldn't open output file '%s'", name);
+		ntfs_log_perror("Couldn't create output file '%s'", name);
 		goto attr;
 	}
 
@@ -2376,6 +2393,7 @@
 	}
 
 	ntfs_log_verbose("Read %lld MFT Records\n", mft_end - mft_begin + 1);
+	ntfs_log_quiet("MFT extracted to file %s\n", pathname);
 	result = 0;
 close:
 	close(fd);
