| Index: Source/core/rendering/RenderInline.cpp | 
| diff --git a/Source/core/rendering/RenderInline.cpp b/Source/core/rendering/RenderInline.cpp | 
| index e1501a8af492178a6757f6166143e778f45c9d1f..437f4e4a756734e4e72935f2011326cd8f02a310 100644 | 
| --- a/Source/core/rendering/RenderInline.cpp | 
| +++ b/Source/core/rendering/RenderInline.cpp | 
| @@ -1309,17 +1309,15 @@ LayoutSize RenderInline::offsetForInFlowPositionedInline(const RenderBox& child) | 
| blockPosition = layer()->staticBlockPosition(); | 
| } | 
|  | 
| -    if (!child.style()->hasStaticInlinePosition(style()->isHorizontalWritingMode())) | 
| +    // Per http://www.w3.org/TR/CSS2/visudet.html#abs-non-replaced-width an absolute positioned box | 
| +    // with a static position should locate itself as though it is a normal flow box in relation to | 
| +    // its containing block. If this relative-positioned inline has a negative offset we need to | 
| +    // compensate for it so that we align the positioned object with the edge of its containing block. | 
| +    if (child.style()->hasStaticInlinePosition(style()->isHorizontalWritingMode())) | 
| +        logicalOffset.setWidth(std::max(LayoutUnit(), -offsetForInFlowPosition().width())); | 
| +    else | 
| logicalOffset.setWidth(inlinePosition); | 
|  | 
| -    // This is not terribly intuitive, but we have to match other browsers.  Despite being a block display type inside | 
| -    // an inline, we still keep our x locked to the left of the relative positioned inline.  Arguably the correct | 
| -    // behavior would be to go flush left to the block that contains the inline, but that isn't what other browsers | 
| -    // do. | 
| -    else if (!child.style()->isOriginalDisplayInlineType()) | 
| -        // Avoid adding in the left border/padding of the containing block twice.  Subtract it out. | 
| -        logicalOffset.setWidth(inlinePosition - child.containingBlock()->borderAndPaddingLogicalLeft()); | 
| - | 
| if (!child.style()->hasStaticBlockPosition(style()->isHorizontalWritingMode())) | 
| logicalOffset.setHeight(blockPosition); | 
|  | 
|  |