diff --git a/Cargo.lock b/Cargo.lock
index 03b3a6d4..6af26d37 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1101,9 +1101,9 @@ dependencies = [
 
 [[package]]
 name = "termini"
-version = "0.1.1"
+version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00733d628ac0a8bd4fd3171a28eb6c09759ae1b43d8b587eadebaccee01d01a3"
+checksum = "394766021ef3dae8077f080518cdf5360831990f77f5708d5e3594c9b3efa2f9"
 dependencies = [
  "dirs-next",
 ]
diff --git a/helix-tui/src/backend/crossterm.rs b/helix-tui/src/backend/crossterm.rs
index 7b3b0817..7c7250fa 100644
--- a/helix-tui/src/backend/crossterm.rs
+++ b/helix-tui/src/backend/crossterm.rs
@@ -113,21 +113,21 @@ where
             }
 
             let mut new_underline_style = cell.underline_style;
-            if !self.capabilities.has_extended_underlines {
-                match new_underline_style {
-                    UnderlineStyle::Reset | UnderlineStyle::Line => (),
-                    _ => new_underline_style = UnderlineStyle::Line,
-                }
-
+            if self.capabilities.has_extended_underlines {
                 if cell.underline_color != underline_color {
                     let color = CColor::from(cell.underline_color);
                     map_error(queue!(self.buffer, SetUnderlineColor(color)))?;
                     underline_color = cell.underline_color;
                 }
+            } else {
+                match new_underline_style {
+                    UnderlineStyle::Reset | UnderlineStyle::Line => (),
+                    _ => new_underline_style = UnderlineStyle::Line,
+                }
             }
 
             if new_underline_style != underline_style {
-                let attr = CAttribute::from(cell.underline_style);
+                let attr = CAttribute::from(new_underline_style);
                 map_error(queue!(self.buffer, SetAttribute(attr)))?;
                 underline_style = new_underline_style;
             }