diff --git a/src/winio.c b/src/winio.c
index f04bd5a38d1d6990502ce00c86eac189e379ccb4..d32403a2f57056d9e3a2489343f10f82daa990d4 100644
--- a/src/winio.c
+++ b/src/winio.c
@@ -2288,7 +2288,7 @@ char *display_string(const char *buf, size_t start_col, size_t len, bool
     assert(column <= start_col);
 
     alloc_len = display_string_len(buf + start_index, start_col,
-	start_col + COLS);
+	start_col + len) + 2;
     converted = charalloc(alloc_len + 1);
     index = 0;