diff --git a/ChangeLog b/ChangeLog
index 0badeffed103c54d4a1b36a993c3a8e27dbe1935..0b536ee3738b35501b7d9e9041d5e96fc885b051 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -105,6 +105,8 @@ CVS code -
 	- Rename variable ret to retval for consistency. (DLR)
 	- Tweak the message displayed when a backup file can't be
 	  written, so as to not duplicate a translated string. (DLR)
+	- If the current filestruct's been partitioned, unpartition it
+	  before saving the associated file. (DLR)
   copy_filestruct()
 	- Rename variable prev to copy to avoid confusion. (DLR)
   print1opt_full()
diff --git a/src/nano.c b/src/nano.c
index 0d1658264bd3ae0dc46311457e608775b155c71c..5d36b3c914e773acfd6ab6337b98c7545289b021 100644
--- a/src/nano.c
+++ b/src/nano.c
@@ -126,8 +126,13 @@ void die(const char *msg, ...)
     va_end(ap);
 
     /* Save the current file buffer if it's been modified. */
-    if (ISSET(MODIFIED))
+    if (ISSET(MODIFIED)) {
+	/* If we've partitioned the filestruct, unpartition it now. */
+	if (filepart != NULL)
+	    unpartition_filestruct(&filepart);
+
 	die_save_file(filename);
+    }
 
 #ifdef ENABLE_MULTIBUFFER
     /* Save all of the other modified file buffers, if any. */