| Index: Source/core/editing/DeleteSelectionCommand.cpp | 
| diff --git a/Source/core/editing/DeleteSelectionCommand.cpp b/Source/core/editing/DeleteSelectionCommand.cpp | 
| index a01bb00bf2e032a4263dba30772596db6beafcec..6d077b574611c2e2539964e3a20f2b21f7013ae0 100644 | 
| --- a/Source/core/editing/DeleteSelectionCommand.cpp | 
| +++ b/Source/core/editing/DeleteSelectionCommand.cpp | 
| @@ -269,6 +269,12 @@ void DeleteSelectionCommand::initializePositionData() | 
| m_endBlock = enclosingNodeOfType(m_upstreamEnd.parentAnchoredEquivalent(), &isBlock, CanCrossEditingBoundary); | 
| } | 
|  | 
| +// We don't want to inherit style from an element which can't have contents. | 
| +static bool shouldNotInheritStyleFrom(const Node& node) | 
| +{ | 
| +    return !node.canContainRangeEndPoint(); | 
| +} | 
| + | 
| void DeleteSelectionCommand::saveTypingStyleState() | 
| { | 
| // A common case is deleting characters that are all from the same text node. In | 
| @@ -281,6 +287,9 @@ void DeleteSelectionCommand::saveTypingStyleState() | 
| if (m_upstreamStart.deprecatedNode() == m_downstreamEnd.deprecatedNode() && m_upstreamStart.deprecatedNode()->isTextNode()) | 
| return; | 
|  | 
| +    if (shouldNotInheritStyleFrom(*m_selectionToDelete.start().anchorNode())) | 
| +        return; | 
| + | 
| // Figure out the typing style in effect before the delete is done. | 
| m_typingStyle = EditingStyle::create(m_selectionToDelete.start()); | 
| m_typingStyle->removeStyleAddedByNode(enclosingAnchorElement(m_selectionToDelete.start())); | 
|  |