Index: khtml/rendering/render_table.h =================================================================== --- khtml/rendering/render_table.h (Revision 570647) +++ khtml/rendering/render_table.h (Revision 570648) @@ -306,6 +306,8 @@ virtual void layout(); + virtual RenderObject* removeChildNode(RenderObject* child); + // The only time rows get a layer is when they have transparency. virtual bool requiresLayer() const { return /* style()->opacity() < 1.0f; */ false ; } virtual void paint(PaintInfo& i, int tx, int ty); Index: khtml/rendering/render_table.cpp =================================================================== --- khtml/rendering/render_table.cpp (Revision 570647) +++ khtml/rendering/render_table.cpp (Revision 570648) @@ -1984,6 +1984,15 @@ setInline(false); // our object is not Inline } +RenderObject* RenderTableRow::removeChildNode(RenderObject* child) +{ + RenderTableSection *s = section(); + if (s) + s->setNeedCellRecalc(); + + return RenderContainer::removeChildNode( child ); +} + void RenderTableRow::detach() { RenderTableSection *s = section(); @@ -2235,6 +2244,9 @@ kdDebug( 6040 ) << renderName() << "(TableCell)::calcMinMaxWidth() known=" << minMaxKnown() << endl; #endif + if (section()->needCellRecalc) + section()->recalcCells(); + RenderBlock::calcMinMaxWidth(); if (element() && style()->whiteSpace() == NORMAL) { // See if nowrap was set.