diff -urpN busybox-1.17.0/libbb/lineedit.c busybox-1.17.0-ask_terminal/libbb/lineedit.c
--- busybox-1.17.0/libbb/lineedit.c	2010-06-24 04:40:43.000000000 +0200
+++ busybox-1.17.0-ask_terminal/libbb/lineedit.c	2010-07-25 00:04:59.000000000 +0200
@@ -1765,11 +1765,13 @@ static void cmdedit_setwidth(unsigned w,
 
 static void win_changed(int nsig)
 {
+	int sv_errno = errno;
 	unsigned width;
 	get_terminal_width_height(0, &width, NULL);
 	cmdedit_setwidth(width, nsig /* - just a yes/no flag */);
 	if (nsig == SIGWINCH)
 		signal(SIGWINCH, win_changed); /* rearm ourself */
+	errno = sv_errno;
 }
 
 static int lineedit_read_key(char *read_key_buffer)
