diff --git a/st.c b/st.c
index 0042204..0c6423a 100644
--- a/st.c
+++ b/st.c
@@ -627,12 +627,13 @@ tscrollup(int orig, int n) {
 
 void
 tnewline(void) {
+	int x = term.c.x+1 < term.col ? term.c.x : 0;
 	int y = term.c.y;
 	if(term.c.y == term.bot)
 		tscrollup(term.top, 1);
 	else
 		y++;
-	tmoveto(0, y);
+	tmoveto(x, y);
 }
 
 void