  			if (t <= buffer)
  				continue;
  			t--;
-@@ -318,14 +319,10 @@ static int cmdloop(void)
- 		c = getch();
- 		switch (c) {
- 		case C_D:
--		case KEY_DOWN:
--		case KEY_NPAGE:
- 		case 'j':
- 			doscrl(LINES / 2);
- 			break;
- 		case C_U:
--		case KEY_UP:
--		case KEY_PPAGE:
- 		case 'k':
- 			doscrl(-LINES / 2);
- 			break;
-@@ -397,8 +394,6 @@ int main(int argc, char **argv)
+@@ -441,12 +442,8 @@ jumptolinecmd(void)
+ 
+ static command_fn cmdtbl[512] = {
+ 	[C_D] = scrolldown,
+-	[KEY_DOWN] = scrolldown,
+-	[KEY_NPAGE] = scrolldown,
+ 	['j'] = scrolldown,
+ 	[C_U] = scrollup,
+-	[KEY_UP] = scrollup,
+-	[KEY_PPAGE] = scrollup,
+ 	['k'] = scrollup,
+ 	['q'] = quitcmd,
+ 	['i'] = insertcmd,
+@@ -493,8 +490,6 @@ main(int argc, char **argv)
  		cbreak();
  		noecho();
  		nonl();

 		goto loop;
 	else
 		end--;
@@ -147,6 +147,7 @@ static void draw(void)
 
 static void doscrl(int d)
 {
+	clear();
 	lwe_scroll += d;
 	if (lwe_scroll < 0)
 		lwe_scroll = 0;
@@ -279,7 +280,7 @@ static int insertmode(char *t)
 			c = '\n';
 		if (c == C_D)
 			return 1;

diff --git a/src/llwe.c b/src/llwe.c
index b9d5196..fb3e1f2 100644
--- a/src/llwe.c
+++ b/src/llwe.c
@@ -70,7 +70,7 @@ bread(void)
 		err("memory");
 		return 0;
 	}
