evidence is that this didn't get out before, so here it is again. there's a stupid mistake in the implementation of left and right arrows. the other change here is that i tweaked the parameters so the up and down arrows go 1/3 page and page up and page down arrows go 2/3 page. i hope this is it for a while. -rob 643c643,644 < if(t->q0 > 0) --- > if(t->q0 > 0){ > textcommit(t, TRUE); 644a646 > } 647c649,650 < if(t->q1 < t->file->nc) --- > if(t->q1 < t->file->nc){ > textcommit(t, TRUE); 648a652 > } 650a655,656 > n = t->maxlines/3; > goto case_Down; 652c658,659 < n = t->maxlines/2; --- > n = 2*t->maxlines/3; > case_Down: 656a664,665 > n = t->maxlines/3; > goto case_Up; 658c667,668 < n = t->maxlines/2; --- > n = 2*t->maxlines/3; > case_Up: