ttynew(char *line, char *out, char **args)
 {
        int m, s;
-       struct winsize w = {term.row, term.col, 0, 0};
 
        if (out) {
                term.mode |= MODE_PRINT;
        }
 
        /* seems to work fine on linux, openbsd and freebsd */
-       if (openpty(&m, &s, NULL, NULL, &w) < 0)
+       if (openpty(&m, &s, NULL, NULL, NULL) < 0)
                die("openpty failed: %s\n", strerror(errno));
 
        switch (pid = fork()) {
 
        xunloadfonts();
        xloadfonts(usedfont, arg->f);
        cresize(0, 0);
-       ttyresize(win.tw, win.th);
        redraw();
        xhints();
 }
 
        tresize(col, row);
        xresize(col, row);
+       ttyresize(win.tw, win.th);
 }
 
 void
                return;
 
        cresize(e->xconfigure.width, e->xconfigure.height);
-       ttyresize(win.tw, win.th);
 }
 
 void
                }
        } while (ev.type != MapNotify);
 
-       cresize(w, h);
        ttynew(opt_line, opt_io, opt_cmd);
-       ttyresize(win.tw, win.th);
+       cresize(w, h);
 
        clock_gettime(CLOCK_MONOTONIC, &last);
        lastblink = last;