diff -uNr tmux.orig/window-copy.c tmux/window-copy.c
--- tmux.orig/window-copy.c	2012-09-24 23:35:42.670177436 +0400
+++ tmux/window-copy.c	2012-09-24 23:42:11.061294277 +0400
@@ -821,7 +821,7 @@
 {
 	struct window_copy_mode_data	*data = wp->modedata;
 	struct screen			*s = &data->screen;
-	u_int				 i;
+	u_int				 i, scroll_only = 0;
 
 	if (m->x >= screen_size_x(s))
 		return;
@@ -830,12 +830,14 @@
 
 	/* If mouse wheel (buttons 4 and 5), scroll. */
 	if ((m->b & MOUSE_45)) {
+		if (data->oy != screen_hsize(data->backing))
+			scroll_only = 1;
 		if ((m->b & MOUSE_BUTTON) == MOUSE_1) {
 			for (i = 0; i < 5; i++)
-				window_copy_cursor_up(wp, 0);
+				window_copy_cursor_up(wp, scroll_only);
 		} else if ((m->b & MOUSE_BUTTON) == MOUSE_2) {
 			for (i = 0; i < 5; i++)
-				window_copy_cursor_down(wp, 0);
+				window_copy_cursor_down(wp, scroll_only);
 			if (data->oy == 0)
 				goto reset_mode;
 		}
