| Index: Source/core/rendering/RenderBox.cpp | 
| diff --git a/Source/core/rendering/RenderBox.cpp b/Source/core/rendering/RenderBox.cpp | 
| index 15cd98ac30c21f3e2ecb887e0ce6c4913a814a9b..684ea44e8a82f993d6823fbf1b675b0eedb0e03f 100644 | 
| --- a/Source/core/rendering/RenderBox.cpp | 
| +++ b/Source/core/rendering/RenderBox.cpp | 
| @@ -1930,6 +1930,9 @@ void RenderBox::positionLineBox(InlineBox* box) | 
| setChildNeedsLayout(MarkOnlyThis); // Just go ahead and mark the positioned object as needing layout, so it will update its position properly. | 
| } | 
|  | 
| +        if (container()->isRenderInline()) | 
| +            moveWithEdgeOfInlineContainerIfNecessary(box->isHorizontal()); | 
| + | 
| // Nuke the box. | 
| box->remove(DontMarkLineBoxes); | 
| box->destroy(); | 
| @@ -1939,6 +1942,17 @@ void RenderBox::positionLineBox(InlineBox* box) | 
| } | 
| } | 
|  | 
| +void RenderBox::moveWithEdgeOfInlineContainerIfNecessary(bool isHorizontal) | 
| +{ | 
| +    ASSERT(isOutOfFlowPositioned() && container()->isRenderInline() && container()->isRelPositioned()); | 
| +    // If this object is inside a relative positioned inline and its inline position is an explicit offset from the edge of its container | 
| +    // then it will need to move if its inline container has changed width. We do not track if the width has changed | 
| +    // but if we are here then we are laying out lines inside it, so it probably has - mark our object for layout so that it can | 
| +    // move to the new offset created by the new width. | 
| +    if (!normalChildNeedsLayout() && !style()->hasStaticInlinePosition(isHorizontal)) | 
| +        setChildNeedsLayout(MarkOnlyThis); | 
| +} | 
| + | 
| void RenderBox::deleteLineBoxWrapper() | 
| { | 
| if (inlineBoxWrapper()) { | 
|  |