diff --git a/ChangeLog b/ChangeLog
index 0437b363b309dee1ff6be100c66940d693bead23..3c4edf96e741c214641bc5f968cc892733c6efb4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2010-04-02 Chris Allegretta <chrisa@asty.org>
+	* files.c (do_writeout): Expand modification check to include both the
+	  original file's device ID and inode number as reasons to warn the 
+          user that the file has been modified.  Based on security article on nano
+          by Dan Rosenberg.
+
 2010-03-21 Chris Allegretta <chrisa@asty.org>
 	* nano.c (page_stdin et al): Don't attempt to reset/reopen the terminal
 	  settings when reading stdin if it was aborted with SIGINT.  May fix Savannah
diff --git a/src/files.c b/src/files.c
index 5e922a4d682e770795afb2a971a87041d9ac71ec..8e63903a884a621d93c2deaeb65e83b48826a998 100644
--- a/src/files.c
+++ b/src/files.c
@@ -2126,7 +2126,8 @@ bool do_writeout(bool exiting)
 		}
 #ifndef NANO_TINY
 
-		if (name_exists && openfile->current_stat && openfile->current_stat->st_mtime < st.st_mtime) {
+		if (name_exists && openfile->current_stat && openfile->current_stat->st_mtime < st.st_mtime ||
+                    openfile->current_stat->st_dev != st.st_dev || openfile->current_stat->st_ino != st.st_ino) {
 		    i = do_yesno_prompt(FALSE,
 			_("File was modified since you opened it, continue saving ? "));
 		    if (i == 0 || i == -1)