diff --git a/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qmlgraphicsitemnodeinstance.cpp b/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qmlgraphicsitemnodeinstance.cpp
index 13c8a105f52da90a8a7311cde6ae11927ec2ddbb..09e32ce33c8277d9d40b5421c9c51e0016125d27 100644
--- a/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qmlgraphicsitemnodeinstance.cpp
+++ b/share/qtcreator/qml/qmlpuppet/qmlpuppet/instances/qmlgraphicsitemnodeinstance.cpp
@@ -90,9 +90,6 @@ QmlGraphicsItemNodeInstance::Pointer QmlGraphicsItemNodeInstance::create(QObject
     instance->setHasContent(anyItemHasContent(qmlGraphicsItem));
     qmlGraphicsItem->setFlag(QGraphicsItem::ItemHasNoContents, false);
 
-    if (qmlGraphicsItem->inherits("QDeclarativeText"))
-        instance->setResizable(false);
-
     static_cast<QDeclarativeParserStatus*>(qmlGraphicsItem)->classBegin();
 
     instance->populateResetValueHash();
@@ -107,93 +104,11 @@ bool QmlGraphicsItemNodeInstance::isQmlGraphicsItem() const
 
 QSizeF QmlGraphicsItemNodeInstance::size() const
 {
-    if (isValid()) {
-        double implicitWidth = qmlGraphicsItem()->implicitWidth();
-        if (!m_hasWidth
-            && implicitWidth // WORKAROUND
-            && qmlGraphicsItem()->width() <= 0
-            && implicitWidth != qmlGraphicsItem()->width()
-            && !hasBindingForProperty("width")) {
-            qmlGraphicsItem()->blockSignals(true);
-            qmlGraphicsItem()->setWidth(implicitWidth);
-            qmlGraphicsItem()->blockSignals(false);
-        }
-
-        double implicitHeight = qmlGraphicsItem()->implicitHeight();
-        if (!m_hasHeight
-            && implicitWidth // WORKAROUND
-            && qmlGraphicsItem()->height() <= 0
-            && implicitHeight != qmlGraphicsItem()->height()
-            && !hasBindingForProperty("height")) {
-            qmlGraphicsItem()->blockSignals(true);
-            qmlGraphicsItem()->setHeight(implicitHeight);
-            qmlGraphicsItem()->blockSignals(false);
-        }
-
-    }
-
-    if (isRootNodeInstance()) {
-        if (!m_hasWidth) {
-            qmlGraphicsItem()->blockSignals(true);
-            if (qmlGraphicsItem()->width() < 10.)
-                qmlGraphicsItem()->setWidth(100.);
-            qmlGraphicsItem()->blockSignals(false);
-        }
-
-        if (!m_hasHeight) {
-            qmlGraphicsItem()->blockSignals(true);
-            if (qmlGraphicsItem()->height() < 10.)
-                qmlGraphicsItem()->setHeight(100.);
-            qmlGraphicsItem()->blockSignals(false);
-        }
-    }
-
     return QSizeF(qmlGraphicsItem()->width(), qmlGraphicsItem()->height());
 }
 
 QRectF QmlGraphicsItemNodeInstance::boundingRect() const
 {
-    if (isValid()) {
-        double implicitWidth = qmlGraphicsItem()->implicitWidth();
-        if (!m_hasWidth
-            && implicitWidth // WORKAROUND
-            && qmlGraphicsItem()->width() <= 0
-            && implicitWidth != qmlGraphicsItem()->width()
-            && !hasBindingForProperty("width")) {
-            qmlGraphicsItem()->blockSignals(true);
-            qmlGraphicsItem()->setWidth(implicitWidth);
-            qmlGraphicsItem()->blockSignals(false);
-        }
-
-        double implicitHeight = qmlGraphicsItem()->implicitHeight();
-        if (!m_hasHeight
-            && implicitWidth // WORKAROUND
-            && qmlGraphicsItem()->height() <= 0
-            && implicitHeight != qmlGraphicsItem()->height()
-            && !hasBindingForProperty("height")) {
-            qmlGraphicsItem()->blockSignals(true);
-            qmlGraphicsItem()->setHeight(implicitHeight);
-            qmlGraphicsItem()->blockSignals(false);
-        }
-
-    }
-
-    if (isRootNodeInstance()) {
-        if (!m_hasWidth) {
-            qmlGraphicsItem()->blockSignals(true);
-            if (qmlGraphicsItem()->width() < 10.)
-                qmlGraphicsItem()->setWidth(100.);
-            qmlGraphicsItem()->blockSignals(false);
-        }
-
-        if (!m_hasHeight) {
-            qmlGraphicsItem()->blockSignals(true);
-            if (qmlGraphicsItem()->height() < 10.)
-                qmlGraphicsItem()->setHeight(100.);
-            qmlGraphicsItem()->blockSignals(false);
-        }
-    }
-
     if (qmlGraphicsItem())
         return qmlGraphicsItem()->boundingRect();
 
diff --git a/src/plugins/qmldesigner/components/formeditor/formeditoritem.cpp b/src/plugins/qmldesigner/components/formeditor/formeditoritem.cpp
index 8ea38a21b09a986f2e1af9639a358a41162aae50..bedfac68d9adf27634a4bbf14f88e13fdc1e3865 100644
--- a/src/plugins/qmldesigner/components/formeditor/formeditoritem.cpp
+++ b/src/plugins/qmldesigner/components/formeditor/formeditoritem.cpp
@@ -99,7 +99,7 @@ QRectF FormEditorItem::boundingRect() const
 void FormEditorItem::updateGeometry()
 {
     prepareGeometryChange();
-    m_boundingRect = qmlItemNode().instanceBoundingRect().adjusted(0, 0, 1., 1.);
+    m_boundingRect = qmlItemNode().instancePaintedBoundingRect().adjusted(0, 0, 1., 1.);
     setTransform(qmlItemNode().instanceTransform());
     setTransform(m_attentionTransform, true);
     //the property for zValue is called z in QGraphicsObject
diff --git a/src/plugins/qmldesigner/components/formeditor/resizemanipulator.cpp b/src/plugins/qmldesigner/components/formeditor/resizemanipulator.cpp
index c670b403068254f01df843debecd103d433f4398..1864bbafac4f5c6854c65d1ecf4f0fb69dadb2fc 100644
--- a/src/plugins/qmldesigner/components/formeditor/resizemanipulator.cpp
+++ b/src/plugins/qmldesigner/components/formeditor/resizemanipulator.cpp
@@ -518,21 +518,19 @@ bool ResizeManipulator::isActive() const
 
 void ResizeManipulator::setSize(QmlItemNode itemNode, const QSizeF &size)
 {
-    int penWidth = (itemNode.instancePenWidth() / 2) * 2;
-
     if (!itemNode.hasBindingProperty("width"))
-        itemNode.setVariantProperty("width", qRound(size.width()) - penWidth);
+        itemNode.setVariantProperty("width", qRound(size.width()));
 
     if (!itemNode.hasBindingProperty("height"))
-        itemNode.setVariantProperty("height", qRound(size.height()) - penWidth);
+        itemNode.setVariantProperty("height", qRound(size.height()));
 }
 
 void ResizeManipulator::setPosition(QmlItemNode itemNode, const QPointF &position)
 {
     if (!itemNode.hasBindingProperty("x"))
-        itemNode.setVariantProperty("x", qRound(position.x()) + (itemNode.instancePenWidth() / 2));
+        itemNode.setVariantProperty("x", qRound(position.x()));
 
     if (!itemNode.hasBindingProperty("y"))
-        itemNode.setVariantProperty("y", qRound(position.y()) + (itemNode.instancePenWidth() / 2));
+        itemNode.setVariantProperty("y", qRound(position.y()));
 }
 }
diff --git a/src/plugins/qmldesigner/designercore/include/qmlitemnode.h b/src/plugins/qmldesigner/designercore/include/qmlitemnode.h
index df995186aebd5fcc8bb4d67bbb5fa31a5cfa79f6..68d8ba7b6fc52f320cfb65573e47fd901844e0e9 100644
--- a/src/plugins/qmldesigner/designercore/include/qmlitemnode.h
+++ b/src/plugins/qmldesigner/designercore/include/qmlitemnode.h
@@ -76,6 +76,7 @@ public:
     bool instanceIsInPositioner() const;
 
     QRectF instanceBoundingRect() const;
+    QRectF instancePaintedBoundingRect() const;
     QTransform instanceTransform() const;
     QTransform instanceSceneTransform() const;
     QPointF instancePosition() const;
diff --git a/src/plugins/qmldesigner/designercore/model/qmlitemnode.cpp b/src/plugins/qmldesigner/designercore/model/qmlitemnode.cpp
index bd539ba934047efc1d652da87d7aab5e2e098488..4b40789b0ab9837b5543a29a5106bda9c0e35b57 100644
--- a/src/plugins/qmldesigner/designercore/model/qmlitemnode.cpp
+++ b/src/plugins/qmldesigner/designercore/model/qmlitemnode.cpp
@@ -220,6 +220,11 @@ bool QmlItemNode::instanceIsInPositioner() const
 }
 
 QRectF  QmlItemNode::instanceBoundingRect() const
+{
+    return QRectF(QPointF(0, 0), nodeInstance().size());
+}
+
+QRectF QmlItemNode::instancePaintedBoundingRect() const
 {
     return nodeInstance().boundingRect();
 }