diff --git a/src/browser.c b/src/browser.c
index bae5c96b22e33a5d9e5d0b0055a33b3acb1e5e24..68979615270649b1b459eb544ec6e89ccf21fea1 100644
--- a/src/browser.c
+++ b/src/browser.c
@@ -187,10 +187,10 @@ char *do_browser(char *path)
 			selected += width - 1 - (selected % width);
 			if (selected >= filelist_len)
 				selected = filelist_len - 1;
-		} else if (func == do_up_void) {
+		} else if (func == do_up) {
 			if (selected >= width)
 				selected -= width;
-		} else if (func == do_down_void) {
+		} else if (func == do_down) {
 			if (selected + width <= filelist_len - 1)
 				selected += width;
 		} else if (func == do_prev_block) {
diff --git a/src/global.c b/src/global.c
index 2d4d04f02d5acfd49c14e210d39f95c9131eaefd..e80a94e4ead13d9d4e9d5ac288aef8338df63dce 100644
--- a/src/global.c
+++ b/src/global.c
@@ -855,9 +855,9 @@ void shortcut_init(void)
 	add_to_funcs(do_end, MMAIN,
 		N_("End"), WITHORSANS(end_gist), BLANKAFTER, VIEW);
 
-	add_to_funcs(do_up_void, MMAIN|MHELP|MBROWSER,
+	add_to_funcs(do_up, MMAIN|MHELP|MBROWSER,
 		prevline_tag, WITHORSANS(prevline_gist), TOGETHER, VIEW);
-	add_to_funcs(do_down_void, MMAIN|MHELP|MBROWSER,
+	add_to_funcs(do_down, MMAIN|MHELP|MBROWSER,
 		nextline_tag, WITHORSANS(nextline_gist), TOGETHER, VIEW);
 #ifndef NANO_TINY
 	add_to_funcs(do_scroll_up, MMAIN,
@@ -1181,19 +1181,19 @@ void shortcut_init(void)
 	add_to_sclist((MMOST & ~MBROWSER), "Home", KEY_HOME, do_home, 0);
 	add_to_sclist((MMOST & ~MBROWSER), "^E", 0, do_end, 0);
 	add_to_sclist((MMOST & ~MBROWSER), "End", KEY_END, do_end, 0);
-	add_to_sclist(MMAIN|MHELP|MBROWSER, "^P", 0, do_up_void, 0);
-	add_to_sclist(MMAIN|MHELP|MBROWSER, "^N", 0, do_down_void, 0);
+	add_to_sclist(MMAIN|MHELP|MBROWSER, "^P", 0, do_up, 0);
+	add_to_sclist(MMAIN|MHELP|MBROWSER, "^N", 0, do_down, 0);
 #ifdef ENABLE_UTF8
 	if (using_utf8()) {
-		add_to_sclist(MMAIN|MHELP|MBROWSER, "\xE2\x96\xb2", KEY_UP, do_up_void, 0);
-		add_to_sclist(MMAIN|MHELP|MBROWSER, "\xE2\x96\xbc", KEY_DOWN, do_down_void, 0);
+		add_to_sclist(MMAIN|MHELP|MBROWSER, "\xE2\x96\xb2", KEY_UP, do_up, 0);
+		add_to_sclist(MMAIN|MHELP|MBROWSER, "\xE2\x96\xbc", KEY_DOWN, do_down, 0);
 		add_to_sclist(MMAIN|MBROWSER, "^\xE2\x96\xb2", CONTROL_UP, do_prev_block, 0);
 		add_to_sclist(MMAIN|MBROWSER, "^\xE2\x96\xbc", CONTROL_DOWN, do_next_block, 0);
 	} else
 #endif
 	{
-		add_to_sclist(MMAIN|MHELP|MBROWSER, "Up", KEY_UP, do_up_void, 0);
-		add_to_sclist(MMAIN|MHELP|MBROWSER, "Down", KEY_DOWN, do_down_void, 0);
+		add_to_sclist(MMAIN|MHELP|MBROWSER, "Up", KEY_UP, do_up, 0);
+		add_to_sclist(MMAIN|MHELP|MBROWSER, "Down", KEY_DOWN, do_down, 0);
 		add_to_sclist(MMAIN|MBROWSER, "^Up", CONTROL_UP, do_prev_block, 0);
 		add_to_sclist(MMAIN|MBROWSER, "^Down", CONTROL_DOWN, do_next_block, 0);
 	}
@@ -1553,10 +1553,10 @@ sc *strtosc(const char *input)
 		s->func = do_right;
 	else if (!strcasecmp(input, "up") ||
 			 !strcasecmp(input, "prevline"))
-		s->func = do_up_void;
+		s->func = do_up;
 	else if (!strcasecmp(input, "down") ||
 			 !strcasecmp(input, "nextline"))
-		s->func = do_down_void;
+		s->func = do_down;
 	else if (!strcasecmp(input, "prevword"))
 		s->func = do_prev_word_void;
 	else if (!strcasecmp(input, "nextword"))
diff --git a/src/help.c b/src/help.c
index ba659a37d3563a8de4ba420f488bcc444eeb8d6b..a76c3a447e7a5929271badde8309d5fc710dea06 100644
--- a/src/help.c
+++ b/src/help.c
@@ -192,12 +192,12 @@ void do_help(void)
 
 		if (func == total_refresh) {
 			total_redraw();
-		} else if (func == do_up_void) {
-			do_up(TRUE);
-		} else if (func == do_down_void) {
+		} else if (func == do_up) {
+			do_scroll_up();
+		} else if (func == do_down) {
 			if (openfile->edittop->lineno + editwinrows - 1 <
 								openfile->filebot->lineno)
-				do_down(TRUE);
+				do_scroll_down();
 		} else if (func == do_page_up) {
 			do_page_up();
 		} else if (func == do_page_down) {
diff --git a/src/move.c b/src/move.c
index ac658a3ee5329c334b11a32d4c91babe3b81a3f7..92044f41f2aca1e452a2766a6e89f7b41ab1df0a 100644
--- a/src/move.c
+++ b/src/move.c
@@ -481,9 +481,8 @@ void do_end(void)
 		update_line(openfile->current, openfile->current_x);
 }
 
-/* Move the cursor to the preceding line or chunk.  If scroll_only is TRUE,
- * also scroll the screen one row, so the cursor stays in the same spot. */
-void do_up(bool really_move)
+/* Move the cursor to the preceding line or chunk. */
+void do_up(void)
 {
 	filestruct *was_current = openfile->current;
 	size_t leftedge, target_column;
@@ -491,7 +490,7 @@ void do_up(bool really_move)
 	get_edge_and_target(&leftedge, &target_column);
 
 	/* If we can't move up one line or chunk, we're at top of file. */
-	if (really_move && go_back_chunks(1, &openfile->current, &leftedge) > 0)
+	if (go_back_chunks(1, &openfile->current, &leftedge) > 0)
 		return;
 
 	set_proper_index_and_pww(&leftedge, target_column, FALSE);
@@ -502,9 +501,8 @@ void do_up(bool really_move)
 	openfile->placewewant = leftedge + target_column;
 }
 
-/* Move the cursor to next line or chunk.  If scroll_only is TRUE, also
- * scroll the screen one row, so the cursor stays in the same spot. */
-void do_down(bool really_move)
+/* Move the cursor to next line or chunk. */
+void do_down(void)
 {
 	filestruct *was_current = openfile->current;
 	size_t leftedge, target_column;
@@ -512,7 +510,7 @@ void do_down(bool really_move)
 	get_edge_and_target(&leftedge, &target_column);
 
 	/* If we can't move down one line or chunk, we're at bottom of file. */
-	if (really_move && go_forward_chunks(1, &openfile->current, &leftedge) > 0)
+	if (go_forward_chunks(1, &openfile->current, &leftedge) > 0)
 		return;
 
 	set_proper_index_and_pww(&leftedge, target_column, TRUE);
@@ -523,18 +521,6 @@ void do_down(bool really_move)
 	openfile->placewewant = leftedge + target_column;
 }
 
-/* Move up one line or chunk. */
-void do_up_void(void)
-{
-	do_up(TRUE);
-}
-
-/* Move down one line or chunk. */
-void do_down_void(void)
-{
-	do_down(TRUE);
-}
-
 #ifndef NANO_TINY
 /* Scroll up one line or chunk without scrolling the cursor. */
 void do_scroll_up(void)
@@ -545,7 +531,8 @@ void do_scroll_up(void)
 
 	edit_scroll(BACKWARD);
 
-	do_up(openfile->current_y == editwinrows - 1);
+	if (openfile->current_y == editwinrows - 1)
+		do_up();
 }
 
 /* Scroll down one line or chunk without scrolling the cursor. */
@@ -554,7 +541,8 @@ void do_scroll_down(void)
 	if (openfile->current->next != NULL || openfile->current_y > 0)
 		edit_scroll(FORWARD);
 
-	do_down(openfile->current_y == 0);
+	if (openfile->current_y == 0)
+		do_down();
 }
 #endif
 
diff --git a/src/proto.h b/src/proto.h
index 489f2d2456f3f75192aee42ffea03d795142145e..9b151798ce4eef04295fd5c151d989517d2b0bdc 100644
--- a/src/proto.h
+++ b/src/proto.h
@@ -386,10 +386,8 @@ void do_prev_word_void(void);
 void do_next_word_void(void);
 void do_home(void);
 void do_end(void);
-void do_up(bool really_move);
-void do_down(bool really_move);
-void do_up_void(void);
-void do_down_void(void);
+void do_up(void);
+void do_down(void);
 #ifndef NANO_TINY
 void do_scroll_up(void);
 void do_scroll_down(void);