diff --git a/src/tools/qml/qmlobserver/qmlruntime.cpp b/src/tools/qml/qmlobserver/qmlruntime.cpp
index 4a7e9b880dccd404a84e198878254fa1d1c2eb87..4ebc3ae7637291d9a5dfcd0cf2e39542a32bfeb7 100644
--- a/src/tools/qml/qmlobserver/qmlruntime.cpp
+++ b/src/tools/qml/qmlobserver/qmlruntime.cpp
@@ -528,6 +528,32 @@ QNetworkAccessManager *NetworkAccessManagerFactory::create(QObject *parent)
     return manager;
 }
 
+//
+// Event filter that ensures the crumble path width is always the canvas width
+//
+class CrumblePathResizer : public QObject
+{
+    Q_OBJECT
+public:
+    CrumblePathResizer(Utils::CrumblePath *crumblePathWidget, QObject *parent = 0) :
+        QObject(parent),
+        m_crumblePathWidget(crumblePathWidget)
+    {
+    }
+
+    bool eventFilter(QObject *obj, QEvent *event)
+    {
+        if (event->type() == QEvent::Resize) {
+            QResizeEvent *resizeEvent = static_cast<QResizeEvent *>(event);
+            m_crumblePathWidget->resize(resizeEvent->size().width(), m_crumblePathWidget->height());
+        }
+        return QObject::eventFilter(obj, event);
+    }
+
+private:
+    QWidget *m_crumblePathWidget;
+};
+
 QString QDeclarativeViewer::getVideoFileName()
 {
     QString title = convertAvailable || ffmpegAvailable ? tr("Save Video File") : tr("Save PNG Frames");
@@ -587,27 +613,22 @@ QDeclarativeViewer::QDeclarativeViewer(QWidget *parent, Qt::WindowFlags flags)
 
     canvas = new QmlViewer::QDeclarativeDesignView(this);
     if (!(flags & Qt::FramelessWindowHint)) {
-        addToolBar(Qt::TopToolBarArea, canvas->toolbar());
-        canvas->toolbar()->setFloatable(false);
-        canvas->toolbar()->setMovable(false);
-
-        m_crumblePathWidget = new Utils::CrumblePath(this);
+        m_crumblePathWidget = new Utils::CrumblePath(canvas);
 #ifndef Q_WS_MAC
-        QFile file(":/toolbarstyle.css");
-        file.open(QFile::ReadOnly);
-        QString toolbarStylesheet = QLatin1String(file.readAll());
-        canvas->toolbar()->setStyleSheet(toolbarStylesheet);
         m_crumblePathWidget->setStyleSheet("QWidget { border-bottom: 1px solid black; }");
 #endif
-    }
+        m_crumblePathWidget->setVisible(canvas->designModeBehavior());
 
+        // CrumblePath is not in a layout, so that it overlays the central widget
+        // The event filter ensures that its width stays in sync nevertheless
+        CrumblePathResizer *resizer = new CrumblePathResizer(m_crumblePathWidget, m_crumblePathWidget);
+        canvas->installEventFilter(resizer);
+    }
 
     m_centralWidget = new QWidget(this);
     QVBoxLayout *layout = new QVBoxLayout(m_centralWidget);
     layout->setMargin(0);
     layout->setSpacing(0);
-    if (m_crumblePathWidget)
-        layout->addWidget(m_crumblePathWidget);
 
 
     layout->addWidget(canvas);
@@ -626,6 +647,7 @@ QDeclarativeViewer::QDeclarativeViewer(QWidget *parent, Qt::WindowFlags flags)
         QObject::connect(canvas, SIGNAL(inspectorContextPushed(QString)), m_crumblePathWidget, SLOT(pushElement(QString)));
         QObject::connect(canvas, SIGNAL(inspectorContextPopped()), m_crumblePathWidget, SLOT(popElement()));
         QObject::connect(m_crumblePathWidget, SIGNAL(elementClicked(int)), canvas, SLOT(setInspectorContext(int)));
+        QObject::connect(canvas, SIGNAL(designModeBehaviorChanged(bool)), m_crumblePathWidget, SLOT(setVisible(bool)));
     }
     QObject::connect(canvas->engine(), SIGNAL(quit()), QCoreApplication::instance (), SLOT(quit()));
 
diff --git a/src/tools/qml/qmlobserver/qmlruntime.qrc b/src/tools/qml/qmlobserver/qmlruntime.qrc
index e8d08c6356e6617f37d50492e998eab0be37bd2a..4136eafa526a5669c6c074b05342efad6b6dffbd 100644
--- a/src/tools/qml/qmlobserver/qmlruntime.qrc
+++ b/src/tools/qml/qmlobserver/qmlruntime.qrc
@@ -5,6 +5,5 @@
         <file>content/images/folder.png</file>
         <file>content/images/titlebar.sci</file>
         <file>content/images/titlebar.png</file>
-        <file>toolbarstyle.css</file>
     </qresource>
 </RCC>
diff --git a/src/tools/qml/qmlobserver/toolbarstyle.css b/src/tools/qml/qmlobserver/toolbarstyle.css
deleted file mode 100644
index 8fbbdf9f87534d805516ad24e065e9ab73f998ab..0000000000000000000000000000000000000000
--- a/src/tools/qml/qmlobserver/toolbarstyle.css
+++ /dev/null
@@ -1,28 +0,0 @@
-QToolBar {
-    background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(85, 85, 85, 255), stop:0.3 rgba(79, 79, 79, 255), stop:0.301 rgba(70, 70, 70, 255), stop:1 rgba(57, 57, 57, 255));
-    color: #EEEEEE;
-}
-QToolBar::separator {
-    width: 1px;
-    border-right: 1px solid #6d6d6d;
-    background: #414141;
-}
-QToolButton {
-    border: none;
-    padding-left:4px;
-    padding-right:4px;
-    padding-top:5px;
-    padding-bottom:5px;
-}
-QToolButton:checked {
-    border: none;
-    padding-left:4px;
-    padding-right:4px;
-    padding-top:5px;
-    padding-bottom:5px;
-    background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(65, 65, 65, 255), stop:0.3 rgba(59, 59, 59, 255), stop:0.301 rgba(50, 50, 50, 255), stop:1 rgba(37, 37, 37, 255));
-}
-QToolButton:hover {
-    border: none;
-    background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(105, 105, 105, 255), stop:0.3 rgba(99, 99, 99, 255), stop:0.301 rgba(90, 90, 90, 255), stop:1 rgba(77, 77, 77, 255));
-}