diff --git a/ChangeLog b/ChangeLog
index 93896a54769910933add80899b5c382705a83754..bc673729c7f40b53dd5e9a1301311a5fc0aef2fd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -62,8 +62,8 @@ CVS code -
 	  matches the manual page. (DLR)
 - winio.c:
   get_key_buffer()
-	- If we fail to get a character over MAX_BUF_SIZE times in a
-	  row, hang up regardless of the value of errno.  This fixes a
+	- If we fail to get a character MAX_BUF_SIZE times in a row,
+	  hang up regardless of the value of errno.  This fixes a
 	  problem where nano doesn't terminate properly under xterm if
 	  the user su's to root, runs nano, and then closes the terminal
 	  window.  errno isn't set properly to EIO then. (DLR, found by
diff --git a/src/winio.c b/src/winio.c
index 71a3358d472d7e0068fae65ae56daf4ab506c802..aaab4072b7b24541ef1e758c1b933777ba0db1f8 100644
--- a/src/winio.c
+++ b/src/winio.c
@@ -141,12 +141,12 @@ void get_key_buffer(WINDOW *win)
     while ((input = wgetch(win)) == ERR) {
 	errcount++;
 
-	/* If we've failed to get a character over MAX_BUF_SIZE times in
-	 * a row, assume that the input source we were using is gone and
+	/* If we've failed to get a character MAX_BUF_SIZE times in a
+	 * row, assume that the input source we were using is gone and
 	 * die gracefully.  We could check if errno is set to EIO
 	 * ("Input/output error") and die gracefully in that case, but
 	 * it's not always set properly.  Argh. */
-	if (errcount > MAX_BUF_SIZE)
+	if (errcount == MAX_BUF_SIZE)
 	    handle_hupterm(0);
     }