diff --git a/Libraries/LibHTML/Layout/LayoutBox.cpp b/Libraries/LibHTML/Layout/LayoutBox.cpp
index 44ab81fe03..cf3039287f 100644
--- a/Libraries/LibHTML/Layout/LayoutBox.cpp
+++ b/Libraries/LibHTML/Layout/LayoutBox.cpp
@@ -46,9 +46,22 @@ void LayoutBox::render(RenderingContext& context)
auto border_width_value = style().property(CSS::PropertyID::BorderTopWidth);
auto border_color_value = style().property(CSS::PropertyID::BorderTopColor);
auto border_style_value = style().property(CSS::PropertyID::BorderTopStyle);
- if (border_width_value.has_value() && border_color_value.has_value()) {
+
+ if (border_width_value.has_value()) {
int border_width = border_width_value.value()->to_length().to_px();
- Color border_color = border_color_value.value()->to_color(document());
+
+ Color border_color;
+ if (border_color_value.has_value())
+ border_color = border_color_value.value()->to_color(document());
+ else {
+ // FIXME: This is basically CSS "currentColor" which should be handled elsewhere
+ // in a much more reusable way.
+ auto color_value = style().property(CSS::PropertyID::Color);
+ if (color_value.has_value())
+ border_color = color_value.value()->to_color(document());
+ else
+ border_color = Color::Black;
+ }
if (border_style_value.has_value() && border_style_value.value()->to_string() == "inset") {
// border-style: inset