diff --git a/src/plugins/qmldesigner/components/integration/designdocumentcontroller.cpp b/src/plugins/qmldesigner/components/integration/designdocumentcontroller.cpp
index 47cb7e6d72eb40b437ad8df5cb79f664c6a7014b..9b0c16d5e6e40ab040b167b86a5a4978ef65b081 100644
--- a/src/plugins/qmldesigner/components/integration/designdocumentcontroller.cpp
+++ b/src/plugins/qmldesigner/components/integration/designdocumentcontroller.cpp
@@ -161,8 +161,19 @@ void DesignDocumentController::detachNodeInstanceView()
 
 void DesignDocumentController::attachNodeInstanceView()
 {
+    QmlModelState state;
     if (m_d->nodeInstanceView)
         model()->attachView(m_d->nodeInstanceView.data());
+
+    //We go back to base state (and back again) to avoid side effects from text editing.
+    if (m_d->statesEditorView) {
+        state = m_d->statesEditorView->currentState();
+        m_d->statesEditorView->setCurrentState(m_d->statesEditorView->baseState());
+
+    }
+
+    if (state.isValid() && m_d->statesEditorView)
+        m_d->statesEditorView->setCurrentState(state);
 }
 
 QWidget *DesignDocumentController::centralWidget() const