diff --git a/ChangeLog b/ChangeLog
index f75800a8e72b94df4c8423f0d1f8452fdb58e82e..6e9ece417d3264b7b5b9564c9c60af6798782a99 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,6 @@
+2016-01-13  Benno Schulenberg  <bensberg@justemail.net>
+	* src/files.c (save_poshistory): Reduce the indentation.
+
 2016-01-12  Benno Schulenberg  <bensberg@justemail.net>
 	* NEWS: Fix some typos and whitespace, and normalize the dates.
 	* src/files.c (load_poshistory): Rename a variable.
diff --git a/src/files.c b/src/files.c
index a6da6d351f40353519709397e3e0e64a252566da..a5c5ed0ff2e54322c32085149fee9c07ebfcc3b4 100644
--- a/src/files.c
+++ b/src/files.c
@@ -3107,36 +3107,33 @@ void save_history(void)
 /* Save the recorded last file positions to ~/.nano/filepos_history. */
 void save_poshistory(void)
 {
-    char *poshist;
+    char *poshist = poshistfilename();
     char *statusstr = NULL;
     poshiststruct *posptr;
+    FILE *hist;
 
-    poshist = poshistfilename();
+    if (poshist == NULL)
+	return;
 
-    if (poshist != NULL) {
-	FILE *hist = fopen(poshist, "wb");
+    hist = fopen(poshist, "wb");
 
-	if (hist == NULL)
-	    fprintf(stderr, _("Error writing %s: %s\n"), poshist,
-			strerror(errno));
-	else {
-	    /* Make sure no one else can read from or write to the
-	     * history file. */
-	    chmod(poshist, S_IRUSR | S_IWUSR);
+    if (hist == NULL)
+	fprintf(stderr, _("Error writing %s: %s\n"), poshist, strerror(errno));
+    else {
+	/* Don't allow others to read or write the history file. */
+	chmod(poshist, S_IRUSR | S_IWUSR);
 
-	    for (posptr = position_history; posptr != NULL; posptr = posptr->next) {
-		statusstr = charalloc(strlen(posptr->filename) + 2 * sizeof(ssize_t) + 4);
-		sprintf(statusstr, "%s %ld %ld\n", posptr->filename, (long)posptr->lineno,
+	for (posptr = position_history; posptr != NULL; posptr = posptr->next) {
+	    statusstr = charalloc(strlen(posptr->filename) + 2 * sizeof(ssize_t) + 4);
+	    sprintf(statusstr, "%s %ld %ld\n", posptr->filename, (long)posptr->lineno,
 			(long)posptr->xno);
-		if (fwrite(statusstr, sizeof(char), strlen(statusstr), hist) < strlen(statusstr))
-		    fprintf(stderr, _("Error writing %s: %s\n"), poshist,
-				strerror(errno));
-		free(statusstr);
-	    }
-	    fclose(hist);
+	    if (fwrite(statusstr, sizeof(char), strlen(statusstr), hist) < strlen(statusstr))
+		fprintf(stderr, _("Error writing %s: %s\n"), poshist, strerror(errno));
+	    free(statusstr);
 	}
-	free(poshist);
+	fclose(hist);
     }
+    free(poshist);
 }
 
 /* Update the recorded last file positions, given a filename, a line