| Index: Source/core/rendering/RenderTable.h | 
| diff --git a/Source/core/rendering/RenderTable.h b/Source/core/rendering/RenderTable.h | 
| index 0b6901f759f1331e3526b1edd99d5aaab84d24fd..ea9cb9124a1020f0e88f2d08c8b13b9781a1b7c5 100644 | 
| --- a/Source/core/rendering/RenderTable.h | 
| +++ b/Source/core/rendering/RenderTable.h | 
| @@ -171,6 +171,9 @@ public: | 
|  | 
| unsigned colToEffCol(unsigned column) const | 
| { | 
| +        if (!m_hasCellColspanThatDeterminesTableWidth) | 
| +            return column; | 
| + | 
| unsigned effColumn = 0; | 
| unsigned numColumns = numEffCols(); | 
| for (unsigned c = 0; effColumn < numColumns && c + m_columns[effColumn].span - 1 < column; ++effColumn) | 
| @@ -180,6 +183,9 @@ public: | 
|  | 
| unsigned effColToCol(unsigned effCol) const | 
| { | 
| +        if (!m_hasCellColspanThatDeterminesTableWidth) | 
| +            return effCol; | 
| + | 
| unsigned c = 0; | 
| for (unsigned i = 0; i < effCol; i++) | 
| c += m_columns[i].span; | 
| @@ -332,6 +338,15 @@ private: | 
|  | 
| bool m_columnLogicalWidthChanged : 1; | 
| mutable bool m_columnRenderersValid: 1; | 
| +    mutable bool m_hasCellColspanThatDeterminesTableWidth : 1; | 
| +    bool hasCellColspanThatDeterminesTableWidth() const | 
| +    { | 
| +        for (unsigned c = 0; c < numEffCols(); c++) { | 
| +            if (m_columns[c].span > 1) | 
| +                return true; | 
| +        } | 
| +        return false; | 
| +    } | 
|  | 
| short m_hSpacing; | 
| short m_vSpacing; | 
|  |