Index: busybox-1.23.1/editors/vi.c
===================================================================
--- busybox-1.23.1.orig/editors/vi.c
+++ busybox-1.23.1/editors/vi.c
@@ -2965,16 +2965,11 @@ static int file_write(char *fn, char *fi
 		status_line_bold("No current filename");
 		return -2;
 	}
-	/* By popular request we do not open file with O_TRUNC,
-	 * but instead ftruncate() it _after_ successful write.
-	 * Might reduce amount of data lost on power fail etc.
-	 */
-	fd = open(fn, (O_WRONLY | O_CREAT), 0666);
+	fd = open(fn, (O_WRONLY | O_CREAT | O_TRUNC), 0666);
 	if (fd < 0)
 		return -1;
 	cnt = last - first + 1;
 	charcnt = full_write(fd, first, cnt);
-	ftruncate(fd, charcnt);
 	if (charcnt == cnt) {
 		// good write
 		//modified_count = FALSE;
