diff --git a/src/Text/Pandoc/Shared.hs b/src/Text/Pandoc/Shared.hs
index 0956ee03e..141a0e82a 100644
--- a/src/Text/Pandoc/Shared.hs
+++ b/src/Text/Pandoc/Shared.hs
@@ -574,7 +574,8 @@ makeSections numbering mbBaseLevel bs =
                Header level' _ _ -> level' > level
                _                 -> True) ys
       , "column" `notElem` dclasses
-      , "columns" `notElem` dclasses = do
+      , "columns" `notElem` dclasses
+      , "fragment" `notElem` dclasses = do
     inner <- go (Header level hattr title':ys)
     rest <- go xs
     return $
diff --git a/test/command/8098.md b/test/command/8098.md
new file mode 100644
index 000000000..319644534
--- /dev/null
+++ b/test/command/8098.md
@@ -0,0 +1,36 @@
+```
+% pandoc -t revealjs --slide-level=2
+# Title 1
+
+## Slide 1
+
+Text.
+
+::: fragment
+### Sub Slide header
+
+Text.
+:::
+
+## Slide 2
+
+Text.
+^D
+<section>
+<section id="title-1" class="title-slide slide level1">
+<h1>Title 1</h1>
+
+</section>
+<section id="slide-1" class="slide level2">
+<h2>Slide 1</h2>
+<p>Text.</p>
+<div class="fragment">
+<h3 id="sub-slide-header">Sub Slide header</h3>
+<p>Text.</p>
+</div>
+</section>
+<section id="slide-2" class="slide level2">
+<h2>Slide 2</h2>
+<p>Text.</p>
+</section></section>
+```