diff --git a/st.c b/st.c
index 1df4fde..e76aaf3 100644
--- a/st.c
+++ b/st.c
@@ -1531,7 +1531,8 @@ ttywrite(const char *s, size_t n)
 				 * This means the buffer is getting full
 				 * again. Empty it.
 				 */
-				ttyread();
+				if (n < 256)
+					ttyread();
 				n -= r;
 				s += r;
 			} else {