diff --git a/st.c b/st.c
index 9760b6c..2d080e5 100644
--- a/st.c
+++ b/st.c
@@ -953,7 +953,7 @@ treset(void) {
 		term.tabs[i] = 1;
 	term.top = 0, term.bot = term.row - 1;
 	term.mode = MODE_WRAP;
-	xclear(0, 0, xw.w, xw.h);
+
 	tclearregion(0, 0, term.col-1, term.row-1);
 }
 
@@ -1728,6 +1728,7 @@ tputc(char *c) {
 			case 'c': /* RIS -- Reset to inital state */
 				treset();
 				term.esc = 0;
+				xclear(0, 0, xw.w, xw.h);
 				xresettitle();
 				break;
 			case '=': /* DECPAM -- Application keypad */
@@ -2456,9 +2457,9 @@ main(int argc, char *argv[]) {
 
  run:
 	setlocale(LC_CTYPE, "");
-	xinit();
 	tnew(80, 24);
 	ttynew();
+	xinit();
 	selinit();
 	run();
 	return 0;