diff --git a/src/plugins/qmldesigner/designercore/instances/graphicsobjectnodeinstance.cpp b/src/plugins/qmldesigner/designercore/instances/graphicsobjectnodeinstance.cpp
index 4fe80a1fcde32cca41800043c33e8b95ef1c794d..926d4465dde387d032c0459da57947461f7ed8d4 100644
--- a/src/plugins/qmldesigner/designercore/instances/graphicsobjectnodeinstance.cpp
+++ b/src/plugins/qmldesigner/designercore/instances/graphicsobjectnodeinstance.cpp
@@ -31,6 +31,8 @@
 
 #include "invalidnodeinstanceexception.h"
 #include <QGraphicsObject>
+#include "private/qgraphicsitem_p.h"
+#include <QStyleOptionGraphicsItem>
 #include "nodemetainfo.h"
 
 namespace QmlDesigner {
@@ -153,13 +155,21 @@ bool GraphicsObjectNodeInstance::equalGraphicsItem(QGraphicsItem *item) const
     return item == graphicsObject();
 }
 
+void initOption(QGraphicsItem *item, QStyleOptionGraphicsItem *option, const QTransform &transform)
+{
+    QGraphicsItemPrivate *privateItem = QGraphicsItemPrivate::get(item);
+    privateItem->initStyleOption(option, transform, QRegion());
+}
+
 void GraphicsObjectNodeInstance::paintRecursively(QGraphicsItem *graphicsItem, QPainter *painter) const
 {
     if (graphicsItem->isVisible()) {
         painter->save();
         painter->setTransform(graphicsItem->itemTransform(graphicsItem->parentItem()), true);
         painter->setOpacity(graphicsItem->opacity() * painter->opacity());
-        graphicsItem->paint(painter, 0);
+        QStyleOptionGraphicsItem option;
+        initOption(graphicsItem, &option, painter->transform());
+        graphicsItem->paint(painter, &option);
         foreach(QGraphicsItem *childItem, graphicsItem->childItems()) {
             paintRecursively(childItem, painter);
         }
@@ -171,12 +181,16 @@ void GraphicsObjectNodeInstance::paint(QPainter *painter) const
 {
     painter->save();
     Q_ASSERT(graphicsObject());
-    if (hasContent())
-        graphicsObject()->paint(painter, 0);
+    if (hasContent()) {
+        QStyleOptionGraphicsItem option;
+        initOption(graphicsObject(), &option, painter->transform());
+        graphicsObject()->paint(painter, &option);
 
+    }
     foreach(QGraphicsItem *graphicsItem, graphicsObject()->childItems()) {
         QGraphicsObject *graphicsObject = qgraphicsitem_cast<QGraphicsObject*>(graphicsItem);
-        if (graphicsObject && !nodeInstanceView()->hasInstanceForObject(graphicsObject))
+        if (graphicsObject
+            && !nodeInstanceView()->hasInstanceForObject(graphicsObject))
             paintRecursively(graphicsItem, painter);
     }