    virtual nsresult MouseClick(nsIDOMMouseEvent* aMouseEvent);
    nsresult Focus(InternalFocusEvent* aFocusEvent);
    nsresult Blur(InternalFocusEvent* aBlurEvent);
+diff --git a/editor/libeditor/HTMLAbsPositionEditor.cpp b/editor/libeditor/HTMLAbsPositionEditor.cpp
+index 2e0dde10bb03..e30fff8246cc 100644
+--- a/editor/libeditor/HTMLAbsPositionEditor.cpp
++++ b/editor/libeditor/HTMLAbsPositionEditor.cpp
+@@ -350,9 +350,9 @@ HTMLEditor::StartMoving(nsIDOMElement* aHandle)
+ 
+   // position it
+   mCSSEditUtils->SetCSSPropertyPixels(*mPositioningShadow, *nsGkAtoms::width,
+-                                      mPositionedObjectWidth);
++                                      mPositionedObjectWidth, true);
+   mCSSEditUtils->SetCSSPropertyPixels(*mPositioningShadow, *nsGkAtoms::height,
+-                                      mPositionedObjectHeight);
++                                      mPositionedObjectHeight, true);
+ 
+   mIsMoving = true;
+   return NS_OK; // XXX Looks like nobody refers this result
+diff --git a/editor/libeditor/HTMLAnonymousNodeEditor.cpp b/editor/libeditor/HTMLAnonymousNodeEditor.cpp
+index 8519700294f6..fb2f2d6cb0ff 100644
+--- a/editor/libeditor/HTMLAnonymousNodeEditor.cpp
++++ b/editor/libeditor/HTMLAnonymousNodeEditor.cpp
+@@ -544,8 +544,8 @@ HTMLEditor::SetAnonymousElementPosition(int32_t aX,
+                                         int32_t aY,
+                                         Element* aElement)
+ {
+-  mCSSEditUtils->SetCSSPropertyPixels(*aElement, *nsGkAtoms::left, aX);
+-  mCSSEditUtils->SetCSSPropertyPixels(*aElement, *nsGkAtoms::top, aY);
++  mCSSEditUtils->SetCSSPropertyPixels(*aElement, *nsGkAtoms::left, aX, true);
++  mCSSEditUtils->SetCSSPropertyPixels(*aElement, *nsGkAtoms::top, aY, true);
+ }
+ 
+ } // namespace mozilla
 diff --git a/editor/libeditor/HTMLEditRules.cpp b/editor/libeditor/HTMLEditRules.cpp
 index 40bef2b30b0c..f6f4c86e93a6 100644
 --- a/editor/libeditor/HTMLEditRules.cpp

       (nsGkAtoms::font == aProperty && aAttribute &&
        (aAttribute == nsGkAtoms::color || aAttribute == nsGkAtoms::face))) {
     return true;
@@ -836,6 +837,8 @@ CSSEditUtils::GenerateCSSDeclarationsFromHTMLStyle(
     equivTable = underlineEquivTable;
   } else if (nsGkAtoms::strike == aHTMLProperty) {
     equivTable = strikeEquivTable;

   } else if (nsGkAtoms::tt == aHTMLProperty) {
     equivTable = ttEquivTable;
   } else if (aAttribute) {
diff --git a/editor/libeditor/CSSEditUtils.h b/editor/libeditor/CSSEditUtils.h
index 445c4cef71c0..46819400228a 100644
--- a/editor/libeditor/CSSEditUtils.h
+++ b/editor/libeditor/CSSEditUtils.h
@@ -107,7 +107,8 @@ public:
   nsresult SetCSSProperty(dom::Element& aElement, nsIAtom& aProperty,
                           const nsAString& aValue, bool aSuppressTxn = false);
   nsresult SetCSSPropertyPixels(dom::Element& aElement,
-                                nsIAtom& aProperty, int32_t aIntValue);
+                                nsIAtom& aProperty, int32_t aIntValue,
+                                bool aSuppressTxn = false);
   nsresult RemoveCSSProperty(dom::Element& aElement,
                              nsIAtom& aProperty,
                              const nsAString& aPropertyValue,
diff --git a/editor/libeditor/EditorBase.cpp b/editor/libeditor/EditorBase.cpp
index a845b69aabd2..4c120782e3f1 100644
--- a/editor/libeditor/EditorBase.cpp
