diff --git a/src/winio.c b/src/winio.c
index af8e818196ab602d7ef8423e3e6be95868d31f71..70932515a1c369376159021e11a078285febf6cc 100644
--- a/src/winio.c
+++ b/src/winio.c
@@ -250,21 +250,16 @@ void unget_kbinput(int kbinput, bool metakey, bool funckey)
 /* Try to read input_len characters from the keystroke buffer.  If the
  * keystroke buffer is empty and win isn't NULL, try to read in more
  * characters from win and add them to the keystroke buffer before doing
- * anything else.  If the keystroke buffer is empty and win is NULL,
- * return NULL. */
+ * anything else.  If the keystroke buffer is (still) empty, return NULL. */
 int *get_input(WINDOW *win, size_t input_len)
 {
     int *input;
 
-    if (key_buffer_len == 0) {
-	if (win != NULL) {
-	    get_key_buffer(win);
+    if (key_buffer_len == 0 && win != NULL)
+	get_key_buffer(win);
 
-	    if (key_buffer_len == 0)
-		return NULL;
-	} else
-	    return NULL;
-    }
+    if (key_buffer_len == 0)
+	return NULL;
 
     /* If input_len is greater than the length of the keystroke buffer,
      * only read the number of characters in the keystroke buffer. */