'Flush terminal.'
         print('', end='', flush=True)
 
+    def wrap(self, line: str) -> list[str]:
+        'Wrap line to list of lines fitting into terminal width.'
+        return self._blessed.wrap(line, width=self.size.x)
+
     def write_yx(self, offset: YX, msg: str) -> None:
         'Starting at offset, write line with msg, padded at end with spaces.'
         print(self._blessed.move_yx(offset.y, offset.x), end='')
         self._term.write_yx(YX(self._y_prompt, 0), INPUT_PROMPT)
 
     def _draw_log(self) -> None:
-        temp_buffer = ([''] * self._term.size.y) + self._log_buffer[:]
+        temp_buffer = [''] * self._term.size.y
+        for line in self._log_buffer:
+            temp_buffer += self._term.wrap(line)
         for i, line in enumerate(temp_buffer[-self._y_separator:]):
             self._term.write_yx(YX(i, 0), line)