diff --git a/common/main.c b/common/main.c
index 54ef79e264968bbdba239f2638b56cbf6c0da8a9..8d548dbc85d5f7ba592e64a1bb63668a0466e5fa 100644
--- a/common/main.c
+++ b/common/main.c
@@ -643,12 +643,10 @@ static void cread_print_hist_list(void)
 
 #define ERASE_TO_EOL() {				\
 	if (num < eol_num) {				\
-		int tmp;				\
-		for (tmp = num; tmp < eol_num; tmp++)	\
-			getcmd_putch(' ');		\
-		while (tmp-- > num)			\
+		printf("%*s", (int)(eol_num - num), ""); \
+		do {					\
 			getcmd_putch(CTL_BACKSPACE);	\
-		eol_num = num;				\
+		} while (--eol_num > num);		\
 	}						\
 }