diff --git a/src/components/layout/inline.rs b/src/components/layout/inline.rs
index 350eb52d1ce..f2bddecffed 100644
--- a/src/components/layout/inline.rs
+++ b/src/components/layout/inline.rs
@@ -1092,8 +1092,8 @@ impl Flow for InlineFlow {
let fragment_intrinsic_widths = fragment.intrinsic_widths(Some(context));
intrinsic_widths.minimum_width = geometry::max(intrinsic_widths.minimum_width,
fragment_intrinsic_widths.minimum_width);
- intrinsic_widths.preferred_width = geometry::max(intrinsic_widths.preferred_width,
- fragment_intrinsic_widths.preferred_width);
+ intrinsic_widths.preferred_width = intrinsic_widths.preferred_width +
+ fragment_intrinsic_widths.preferred_width;
}
self.base.intrinsic_widths = intrinsic_widths;
diff --git a/src/test/ref/basic.list b/src/test/ref/basic.list
index 5a11b53c12f..65982c1faa9 100644
--- a/src/test/ref/basic.list
+++ b/src/test/ref/basic.list
@@ -84,3 +84,4 @@
== noscript.html noscript_ref.html
== pseudo_inherit.html pseudo_inherit_ref.html
== float_intrinsic_height.html float_intrinsic_height_ref.html
+== table_auto_width.html table_auto_width_ref.html
diff --git a/src/test/ref/table_auto_width.html b/src/test/ref/table_auto_width.html
new file mode 100644
index 00000000000..39396bbb799
--- /dev/null
+++ b/src/test/ref/table_auto_width.html
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+ 1234567890
+ |
+
+
+
+
+
diff --git a/src/test/ref/table_auto_width_ref.html b/src/test/ref/table_auto_width_ref.html
new file mode 100644
index 00000000000..1a90aab518e
--- /dev/null
+++ b/src/test/ref/table_auto_width_ref.html
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+ 1234567890
+ |
+
+
+
+
+