diff --git a/screen.c b/screen.c
index 333ff969..1860e247 100644
--- a/screen.c
+++ b/screen.c
@@ -287,7 +287,7 @@ screen_check_selection(struct screen *s, u_int px, u_int py)
 		 */
 		if (sel->ex < sel->sx) {
 			/* Cursor (ex) is on the left. */
-			if (px <= sel->ex)
+			if (px < sel->ex)
 				return (0);
 
 			if (px > sel->sx)
@@ -297,7 +297,7 @@ screen_check_selection(struct screen *s, u_int px, u_int py)
 			if (px < sel->sx)
 				return (0);
 
-			if (px >= sel->ex)
+			if (px > sel->ex)
 				return (0);
 		}
 	} else {
diff --git a/window-copy.c b/window-copy.c
index b66eb74f..9f92464b 100644
--- a/window-copy.c
+++ b/window-copy.c
@@ -1267,8 +1267,8 @@ window_copy_copy_selection(struct window_pane *wp, struct session *sess)
 			/* Cursor is on the left. */
 			lastex = data->selx + 1;
 			restex = data->selx + 1;
-			firstsx = data->cx + 1;
-			restsx = data->cx + 1;
+			firstsx = data->cx;
+			restsx = data->cx;
 		}
 	} else {
 		/*