diff --git a/helix-core/src/auto_pairs.rs b/helix-core/src/auto_pairs.rs
index e6b8f667..aa668f29 100644
--- a/helix-core/src/auto_pairs.rs
+++ b/helix-core/src/auto_pairs.rs
@@ -54,6 +54,7 @@ fn next_char(doc: &Rope, pos: usize) -> Option<char> {
     }
     Some(doc.char(pos))
 }
+// TODO: selections should be extended if range, moved if point.
 
 // TODO: if not cursor but selection, wrap on both sides of selection (surround)
 fn handle_open(
diff --git a/helix-term/src/commands.rs b/helix-term/src/commands.rs
index 3f0e32a0..fd95bca4 100644
--- a/helix-term/src/commands.rs
+++ b/helix-term/src/commands.rs
@@ -433,7 +433,7 @@ fn scroll(view: &mut View, offset: usize, direction: Direction) {
     // clamp into viewport
     let line = (view.first_line + cursor_off).clamp(
         view.first_line + scrolloff,
-        view.first_line + view.last_line().saturating_sub(scrolloff),
+        view.last_line().saturating_sub(scrolloff),
     );
 
     let pos = pos_at_coords(text, Position::new(line, cursor.col)); // this func will properly truncate to line end