diff --git a/src/vte.c b/src/vte.c
index 6ec37c3..7670b4f 100644
--- a/src/vte.c
+++ b/src/vte.c
@@ -6595,24 +6595,30 @@ vte_terminal_extend_selection_expand (VteTerminal *terminal)
 		break;
 	case selection_type_line:
 		/* Extend the selection to the beginning of the start line. */
 		sc->col = 0;
 		/* Now back up as far as we can go. */
 		j = sc->row;
 		while (_vte_ring_contains (screen->row_data, j - 1) &&
 		       vte_line_is_wrappable(terminal, j - 1)) {
 			j--;
 			sc->row = j;
 		}
 		/* And move forward as far as we can go. */
+		if (ec->col < 0) {
+			/* If triple clicking on an unused area, ec already points
+			   to the beginning of the next line after the second click.
+			   Go back to the actual row we're at. See bug 725909. */
+			ec->row--;
+		}
 		j = ec->row;
 		while (_vte_ring_contains (screen->row_data, j) &&
 		       vte_line_is_wrappable(terminal, j)) {
 			j++;
 			ec->row = j;
 		}
 		/* Make sure we include all of the last line by extending
 		 * to the beginning of the next line. */
 		ec->row++;
 		ec->col = -1;
 		break;
 	}
