| Index: Source/core/editing/InsertListCommand.cpp | 
| diff --git a/Source/core/editing/InsertListCommand.cpp b/Source/core/editing/InsertListCommand.cpp | 
| index 0456929d78bce9164e08a209985fd95c7da1c09a..1b2b22dc16ec5fbab5e4fc0f933a573148c52534 100644 | 
| --- a/Source/core/editing/InsertListCommand.cpp | 
| +++ b/Source/core/editing/InsertListCommand.cpp | 
| @@ -36,6 +36,8 @@ | 
| #include "core/editing/htmlediting.h" | 
| #include "core/html/HTMLBRElement.h" | 
| #include "core/html/HTMLElement.h" | 
| +#include "core/html/HTMLLIElement.h" | 
| +#include "core/html/HTMLUListElement.h" | 
|  | 
| namespace blink { | 
|  | 
| @@ -51,7 +53,7 @@ static Node* enclosingListChild(Node* node, Node* listNode) | 
|  | 
| HTMLElement* InsertListCommand::fixOrphanedListChild(Node* node) | 
| { | 
| -    RefPtrWillBeRawPtr<HTMLElement> listElement = createUnorderedListElement(document()); | 
| +    RefPtrWillBeRawPtr<HTMLUListElement> listElement = createUnorderedListElement(document()); | 
| insertNodeBefore(listElement, node); | 
| removeNode(node); | 
| appendNode(node, listElement); | 
| @@ -285,12 +287,12 @@ void InsertListCommand::unlistifyParagraph(const VisiblePosition& originalStart, | 
| // When removing a list, we must always create a placeholder to act as a point of insertion | 
| // for the list content being removed. | 
| RefPtrWillBeRawPtr<HTMLBRElement> placeholder = createBreakElement(document()); | 
| -    RefPtrWillBeRawPtr<Element> nodeToInsert = placeholder; | 
| +    RefPtrWillBeRawPtr<HTMLElement> elementToInsert = placeholder; | 
| // If the content of the list item will be moved into another list, put it in a list item | 
| // so that we don't create an orphaned list child. | 
| if (enclosingList(listNode)) { | 
| -        nodeToInsert = createListItemElement(document()); | 
| -        appendNode(placeholder, nodeToInsert); | 
| +        elementToInsert = createListItemElement(document()); | 
| +        appendNode(placeholder, elementToInsert); | 
| } | 
|  | 
| if (nextListChild && previousListChild) { | 
| @@ -302,7 +304,7 @@ void InsertListCommand::unlistifyParagraph(const VisiblePosition& originalStart, | 
| // listChildNode below in moveParagraphs, previousListChild will be removed along with it if it is | 
| // unrendered. But we ought to remove nextListChild too, if it is unrendered. | 
| splitElement(listNode, splitTreeToNode(nextListChild, listNode)); | 
| -        insertNodeBefore(nodeToInsert, listNode); | 
| +        insertNodeBefore(elementToInsert, listNode); | 
| } else if (nextListChild || listChildNode->parentNode() != listNode) { | 
| // Just because listChildNode has no previousListChild doesn't mean there isn't any content | 
| // in listNode that comes before listChildNode, as listChildNode could have ancestors | 
| @@ -310,9 +312,10 @@ void InsertListCommand::unlistifyParagraph(const VisiblePosition& originalStart, | 
| // where we're about to move listChildNode to. | 
| if (listChildNode->parentNode() != listNode) | 
| splitElement(listNode, splitTreeToNode(listChildNode, listNode).get()); | 
| -        insertNodeBefore(nodeToInsert, listNode); | 
| -    } else | 
| -        insertNodeAfter(nodeToInsert, listNode); | 
| +        insertNodeBefore(elementToInsert, listNode); | 
| +    } else { | 
| +        insertNodeAfter(elementToInsert, listNode); | 
| +    } | 
|  | 
| VisiblePosition insertionPoint = VisiblePosition(positionBeforeNode(placeholder.get())); | 
| moveParagraphs(start, end, insertionPoint, /* preserveSelection */ true, /* preserveStyle */ true, listChildNode); | 
|  |