--- command.c 2006-06-26 20:01:20.000000000 +0200 +++ command.c 2007-08-11 12:28:24.000000000 +0200 @@ -3743,6 +3743,10 @@ break; } else if (ch == '\n') { + /* block scrolling if the user is viewing the scrollback buffer */ + if(TermWin.view_start > 0 && TermWin.view_start < TermWin.saveLines) + TermWin.view_start++; + nlines++; if (++refresh_count >= (refresh_limit * (TermWin.nrow - 1))) break; --- screen.c 2006-03-30 00:32:07.000000000 +0200 +++ screen.c 2007-08-11 12:17:40.000000000 +0200 @@ -986,6 +986,10 @@ srp = screen.rend[row]; /* _must_ refresh */ screen.cur.col = 0; screen.flags &= ~Screen_WrapNext; + + /* block scrolling */ + if(TermWin.view_start > 0 && TermWin.view_start < TermWin.saveLines) + TermWin.view_start++; } if (screen.flags & Screen_Insert) scr_insdel_chars(1, INSERT);