diff --git a/Tests/LibWeb/Text/expected/SVG/svg-getbbox-transform-with-no-inverse.txt b/Tests/LibWeb/Text/expected/SVG/svg-getbbox-transform-with-no-inverse.txt
new file mode 100644
index 00000000000000..4262ea2770f295
--- /dev/null
+++ b/Tests/LibWeb/Text/expected/SVG/svg-getbbox-transform-with-no-inverse.txt
@@ -0,0 +1 @@
+ PASS (didn't crash)
diff --git a/Tests/LibWeb/Text/input/SVG/svg-getbbox-transform-with-no-inverse.html b/Tests/LibWeb/Text/input/SVG/svg-getbbox-transform-with-no-inverse.html
new file mode 100644
index 00000000000000..cfce7095b3f68e
--- /dev/null
+++ b/Tests/LibWeb/Text/input/SVG/svg-getbbox-transform-with-no-inverse.html
@@ -0,0 +1,12 @@
+
+
+
+
diff --git a/Userland/Libraries/LibWeb/SVG/SVGGraphicsElement.cpp b/Userland/Libraries/LibWeb/SVG/SVGGraphicsElement.cpp
index 05da5027324114..cbfef15ed75763 100644
--- a/Userland/Libraries/LibWeb/SVG/SVGGraphicsElement.cpp
+++ b/Userland/Libraries/LibWeb/SVG/SVGGraphicsElement.cpp
@@ -272,9 +272,10 @@ JS::NonnullGCPtr SVGGraphicsElement::get_b_box(Optional screen space transform.
auto svg_element_rect = shadow_including_first_ancestor_of_type()->paintable_box()->absolute_rect();
auto inverse_transform = static_cast(*paintable_box()).computed_transforms().svg_to_css_pixels_transform().inverse();
- return Geometry::DOMRect::create(realm(),
- inverse_transform->map(
- paintable_box()->absolute_rect().to_type().translated(-svg_element_rect.location().to_type())));
+ auto translated_rect = paintable_box()->absolute_rect().to_type().translated(-svg_element_rect.location().to_type());
+ if (inverse_transform.has_value())
+ translated_rect = inverse_transform->map(translated_rect);
+ return Geometry::DOMRect::create(realm(), translated_rect);
}
JS::NonnullGCPtr SVGGraphicsElement::transform() const