diff --git a/ChangeLog b/ChangeLog
index f01d0b81d1f8f0dbd6c990a31371fae460f69c75..879c0ba462d77441a3582b94d57d19408414a680 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -376,6 +376,9 @@ CVS code -
 	- Allow refreshing the screen via Ctrl-L, as Pico does. (DLR)
 	- Add a missing assert, and use actual_x() to calculate the
 	  number of characters buf takes up, in case it's UTF-8. (DLR)
+	- Get input from bottomwin instead of edit, so that the cursor
+	  isn't erroneously put in the edit window while we wait for an
+	  answer. (DLR)
   total_redraw()
 	- Simplify to call clearok(TRUE) and wrefresh() on curscr, which
 	  updates the entire screen in fewer function calls without
diff --git a/src/winio.c b/src/winio.c
index a504589a355817e59609ca410839c58a17320b98..e079eef36d4013ed102c788855c28cc2233f700f 100644
--- a/src/winio.c
+++ b/src/winio.c
@@ -3695,7 +3695,7 @@ int do_yesno(bool all, const char *msg)
 	int mouse_x, mouse_y;
 #endif
 
-	kbinput = get_kbinput(edit, &meta_key, &func_key);
+	kbinput = get_kbinput(bottomwin, &meta_key, &func_key);
 
 	if (kbinput == NANO_REFRESH_KEY) {
 	    total_redraw();