diff --git a/src/plugins/qmldesigner/designmode.cpp b/src/plugins/qmldesigner/designmode.cpp
index d8aecc292c9a2b4925f0ff8b9cd7290923bbe82d..89722b48aff0f7d168369e51ae55e9f9dea291c0 100644
--- a/src/plugins/qmldesigner/designmode.cpp
+++ b/src/plugins/qmldesigner/designmode.cpp
@@ -212,7 +212,7 @@ void DesignMode::modeChanged(Core::IMode *mode)
     } else {
         if (m_isActive) {
             m_isActive = false;
-//            m_mainWidget->showEditor(0);
+            m_mainWidget->showEditor(0);
         }
     }
 }
diff --git a/src/plugins/qmldesigner/designmodewidget.cpp b/src/plugins/qmldesigner/designmodewidget.cpp
index 71ec441507c892a531df191acced0364e158f6d3..ab8e3f58c253eb1eb28eea6d33cd3888ad16daf3 100644
--- a/src/plugins/qmldesigner/designmodewidget.cpp
+++ b/src/plugins/qmldesigner/designmodewidget.cpp
@@ -282,13 +282,11 @@ void DocumentWidget::setAutoSynchronization(bool sync)
     if (sync) {
         // text editor -> visual editor
         if (!document()->model()) {
-            // first initialization
-            QList<RewriterView::Error> errors = document()->loadMaster(m_textBuffer.data());
-            if (!errors.isEmpty()) {
-                disable(errors);
-            }
+            document()->loadMaster(m_textBuffer.data());
         }
-        if (document()->model() && document()->qmlErrors().isEmpty()) {
+
+        QList<RewriterView::Error> errors = document()->qmlErrors();
+        if (errors.isEmpty()) {
             // set selection to text cursor
             RewriterView *rewriter = document()->rewriterView();
             const int cursorPos = m_textBuffer->textCursor().position();
@@ -297,6 +295,8 @@ void DocumentWidget::setAutoSynchronization(bool sync)
                 rewriter->setSelectedModelNodes(QList<ModelNode>() << node);
             }
             enable();
+        } else {
+            disable(errors);
         }
 
         connect(document(), SIGNAL(qmlErrorsChanged(QList<RewriterView::Error>)),