diff --git a/Tests/LibWeb/Layout/expected/flex-item-on-row-with-intrinsic-aspect-ratio.txt b/Tests/LibWeb/Layout/expected/flex-item-on-row-with-intrinsic-aspect-ratio.txt
new file mode 100644
index 0000000000..6da0287415
--- /dev/null
+++ b/Tests/LibWeb/Layout/expected/flex-item-on-row-with-intrinsic-aspect-ratio.txt
@@ -0,0 +1,4 @@
+Viewport <#document> at (0,0) content-size 800x600 children: not-inline
+ BlockContainer at (0,0) content-size 800x200 children: not-inline
+ Box
at (0,0) content-size 800x200 flex-container(row) children: not-inline
+ ImageBox
at (0,0) content-size 400x200 flex-item children: not-inline
diff --git a/Tests/LibWeb/Layout/input/flex-item-on-row-with-intrinsic-aspect-ratio.html b/Tests/LibWeb/Layout/input/flex-item-on-row-with-intrinsic-aspect-ratio.html
new file mode 100644
index 0000000000..ed59d6391e
--- /dev/null
+++ b/Tests/LibWeb/Layout/input/flex-item-on-row-with-intrinsic-aspect-ratio.html
@@ -0,0 +1,12 @@
+
\ No newline at end of file
diff --git a/Userland/Libraries/LibWeb/Layout/FormattingContext.cpp b/Userland/Libraries/LibWeb/Layout/FormattingContext.cpp
index 803b051940..421643823e 100644
--- a/Userland/Libraries/LibWeb/Layout/FormattingContext.cpp
+++ b/Userland/Libraries/LibWeb/Layout/FormattingContext.cpp
@@ -1205,6 +1205,9 @@ CSSPixels FormattingContext::calculate_min_content_height(Layout::Box const& box
CSSPixels FormattingContext::calculate_max_content_height(Layout::Box const& box, AvailableSize const& available_width) const
{
+ if (box.has_intrinsic_aspect_ratio() && available_width.is_definite())
+ return available_width.to_px() / *box.intrinsic_aspect_ratio();
+
if (box.has_intrinsic_height())
return *box.intrinsic_height();