diff --git a/helix-core/src/graphemes.rs b/helix-core/src/graphemes.rs
index e2f7c3f3..f71b6d5f 100644
--- a/helix-core/src/graphemes.rs
+++ b/helix-core/src/graphemes.rs
@@ -131,20 +131,6 @@ pub fn ensure_grapheme_boundary(slice: RopeSlice, char_idx: usize) -> usize {
     }
 }
 
-/// Returns the passed byte index if it's already a grapheme boundary,
-/// or the next grapheme boundary byte index if not.
-pub fn ensure_grapheme_boundary_byte(slice: RopeSlice, byte_idx: usize) -> usize {
-    // TODO: we can avoid the byte/char conversions entirely
-    // if we also make byte versions of the other functions.
-    let char_idx = slice.byte_to_char(byte_idx);
-    let fixed_char_idx = ensure_grapheme_boundary(slice, char_idx);
-    if fixed_char_idx == char_idx {
-        byte_idx
-    } else {
-        slice.char_to_byte(fixed_char_idx)
-    }
-}
-
 /// Returns whether the given char position is a grapheme boundary.
 pub fn is_grapheme_boundary(slice: RopeSlice, char_idx: usize) -> bool {
     // Bounds check
diff --git a/helix-term/src/ui/editor.rs b/helix-term/src/ui/editor.rs
index 14cfc7dd..78cca5c7 100644
--- a/helix-term/src/ui/editor.rs
+++ b/helix-term/src/ui/editor.rs
@@ -8,7 +8,7 @@ use crate::{
 
 use helix_core::{
     coords_at_pos,
-    graphemes::{ensure_grapheme_boundary, ensure_grapheme_boundary_byte},
+    graphemes::ensure_grapheme_boundary,
     syntax::{self, HighlightEvent},
     LineEnding, Position, Range,
 };
@@ -143,7 +143,6 @@ impl EditorView {
         'outer: for event in highlights {
             match event.unwrap() {
                 HighlightEvent::HighlightStart(mut span) => {
-                    span.0 = ensure_grapheme_boundary_byte(text, span.0);
                     spans.push(span);
                 }
                 HighlightEvent::HighlightEnd => {