diff --git a/ChangeLog b/ChangeLog
index 82c2db5eb986e8c92f6f12f71f6e48e4887e2131..a777f9a0a505df1d96712c671ce24e8723a9dcc3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -51,6 +51,10 @@ CVS code -
 - help.c:
   do_help()
 	- Simplify screen update handling and exiting. (DLR)
+- winio.c:
+  display_string()
+	- Properly handle buf[start_index]'s being a null terminator.
+	  (DLR)
 - doc/syntax/c.nanorc:
 	- Since .i and .ii are preprocessed C and C++ output, colorize
 	  them here. (Mike Frysinger)
diff --git a/src/winio.c b/src/winio.c
index a95be19b70905cef03a999daa8e4bceb2e5edcfe..a19e1008f9b5297e0b7995dcc6db1cbf0cd77730 100644
--- a/src/winio.c
+++ b/src/winio.c
@@ -1809,8 +1809,8 @@ char *display_string(const char *buf, size_t start_col, size_t len, bool
 
     index = 0;
 
-    if (buf[start_index] != '\t' && (column < start_col || (dollars &&
-	column > 0))) {
+    if (buf[start_index] != '\0' && buf[start_index] != '\t' &&
+	(column < start_col || (dollars && column > 0))) {
 	/* We don't display all of buf[start_index] since it starts to
 	 * the left of the screen. */
 	buf_mb_len = parse_mbchar(buf + start_index, buf_mb, NULL);