diff --git a/ChangeLog b/ChangeLog
index 021252a6e586c44cd123593918eb931eded5b807..d0d3cfbd08d034fcc71aab4d17a9cb2c33c30f97 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -43,6 +43,8 @@ CVS code -
   do_browser()
 	- Don't treat NANO_CANCEL_KEY as NANO_EXIT_KEY anymore, for
 	  consistency. (DLR)
+  save_history()
+	- Properly save history when in view mode. (DLR)
 - global.c:
   shortcut_init()
 	- Move the "Refresh" and "Exit" shortcuts to the beginning of
diff --git a/src/files.c b/src/files.c
index 43d5eb0c05220be9f24e1fd6188f3e3d66e62eeb..bd5ebb88ed0ae14b22b2f6b4e82f1df6dc6912a8 100644
--- a/src/files.c
+++ b/src/files.c
@@ -2912,8 +2912,8 @@ void save_history(void)
     char *nanohist;
 
     /* Don't save unchanged or empty histories. */
-    if ((search_history.count == 0 && replace_history.count == 0) ||
-	!ISSET(HISTORY_CHANGED) || ISSET(VIEW_MODE))
+    if (!ISSET(HISTORY_CHANGED) || (search_history.count == 0 &&
+	replace_history.count == 0))
 	return;
 
     nanohist = histfilename();