diff --git a/src/files.c b/src/files.c
index 86aac711d372ef508ba8ec7a03b9bc10d0322675..2be75041769f80bf279c601f3ce3fb9e9f9a6b34 100644
--- a/src/files.c
+++ b/src/files.c
@@ -3191,8 +3191,7 @@ void load_poshistory(void)
 
 	/* Read and parse each line, and store the extracted data. */
 	while ((read = getline(&line, &buf_len, hist)) > 2) {
-	    if (line[read - 1] == '\n')
-		line[--read] = '\0';
+	    /* Decode nulls as newlines. */
 	    unsunder(line, read);
 
 	    lineptr = parse_next_word(line);