diff --git a/ChangeLog b/ChangeLog
index 77bc452fdf8511117db772b3903694127c74f9cb..4882f9b77f2e15dc571316f1c099224efd36f8a5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,8 @@
 2015-05-28  Benno Schulenberg  <bensberg@justemail.net>
 	* src/help.c (do_help), src/prompt.c (do_yesno_prompt): Normalize
 	the whitespace after the recent changes in logic.
+	* src/prompt.c (do_yesno_prompt): Use 'width' instead of hardcoded
+	16.  Also always first set the string and then position the cursor.
 
 2015-05-28  Mahyar Abbaspour  <mahyar.abaspour@gmail.com>
 	* src/nano.c (handle_sigwinch, regenerate_screen), src/global.c,
diff --git a/src/prompt.c b/src/prompt.c
index 4766eb76e5c2fb819e2478830965938f3a73d1c3..671d53acf75ca192770567202c0dc3e7c5725757 100644
--- a/src/prompt.c
+++ b/src/prompt.c
@@ -1077,7 +1077,7 @@ int do_yesno_prompt(bool all, const char *msg)
 
 	if (!ISSET(NO_HELP)) {
 	    char shortstr[3];
-		/* Temp string for Yes, No, All. */
+		/* Temporary string for (translated) " Y", " N" and " A". */
 
 	    if (COLS < 32)
 		width = COLS / 2;
@@ -1091,16 +1091,16 @@ int do_yesno_prompt(bool all, const char *msg)
 	    onekey(shortstr, _("Yes"), width);
 
 	    if (all) {
-		wmove(bottomwin, 1, width);
 		shortstr[1] = allstr[0];
+		wmove(bottomwin, 1, width);
 		onekey(shortstr, _("All"), width);
 	    }
 
-	    wmove(bottomwin, 2, 0);
 	    shortstr[1] = nostr[0];
+	    wmove(bottomwin, 2, 0);
 	    onekey(shortstr, _("No"), width);
 
-	    wmove(bottomwin, 2, 16);
+	    wmove(bottomwin, 2, width);
 	    onekey("^C", _("Cancel"), width);
 	}