diff --git a/src/libs/qmljs/qmljscodeformatter.cpp b/src/libs/qmljs/qmljscodeformatter.cpp
index 023c7286e977581aaa99cc123010db522bffe858..f71bab238724ff90b4adb1cc2c5dc20cee4dfa04 100644
--- a/src/libs/qmljs/qmljscodeformatter.cpp
+++ b/src/libs/qmljs/qmljscodeformatter.cpp
@@ -246,8 +246,10 @@ void CodeFormatter::recalculateStateAfter(const QTextBlock &block)
 
         case expression_or_objectdefinition:
             switch (kind) {
+            case Dot:
+            case Identifier:    break; // need to become an objectdefinition_open in cases like "width: Qt.Foo {"
             case LeftBrace:     turnInto(objectdefinition_open); break;
-            default:            enter(expression); continue; // really? first token already gone!
+            default:            enter(expression); continue; // really? identifier and more tokens might already be gone
             } break;
 
         case expression:
diff --git a/tests/auto/qml/qmleditor/qmlcodeformatter/qmlcodeformatter.pro b/tests/auto/qml/qmleditor/qmlcodeformatter/qmlcodeformatter.pro
index 54797eb7eaecab0efce0c1772435616bd40946fd..74297ab811938f09e083fd19a6edcb536b88071e 100644
--- a/tests/auto/qml/qmleditor/qmlcodeformatter/qmlcodeformatter.pro
+++ b/tests/auto/qml/qmleditor/qmlcodeformatter/qmlcodeformatter.pro
@@ -8,6 +8,7 @@ SRCDIR = ../../../../../src
 #include($$SRCDIR/../qtcreator.pri)
 include($$SRCDIR/libs/qmljs/qmljs-lib.pri)
 include($$SRCDIR/libs/utils/utils-lib.pri)
+include($$SRCDIR/libs/languageutils/languageutils-lib.pri)
 #LIBS += -L$$IDE_LIBRARY_PATH
 
 SOURCES += \
diff --git a/tests/auto/qml/qmleditor/qmlcodeformatter/tst_qmlcodeformatter.cpp b/tests/auto/qml/qmleditor/qmlcodeformatter/tst_qmlcodeformatter.cpp
index a8b0c422400003f275f0aa26a7dab25ade42a970..c83e7c703fd86b813ccb15767969c7f201c42859 100644
--- a/tests/auto/qml/qmleditor/qmlcodeformatter/tst_qmlcodeformatter.cpp
+++ b/tests/auto/qml/qmleditor/qmlcodeformatter/tst_qmlcodeformatter.cpp
@@ -53,6 +53,7 @@ private Q_SLOTS:
     void expressionContinuation();
     void objectLiteral();
     void keywordStatement();
+    void namespacedObjects();
 };
 
 struct Line {
@@ -961,6 +962,19 @@ void tst_QMLCodeFormatter::keywordStatement()
     checkIndent(data);
 }
 
+void tst_QMLCodeFormatter::namespacedObjects()
+{
+    QList<Line> data;
+    data << Line("Item {")
+         << Line("    width: Q.Foo {")
+         << Line("        Q.Bar {")
+         << Line("            x: 12")
+         << Line("        }")
+         << Line("    }")
+         ;
+    checkIndent(data);
+}
+
 QTEST_APPLESS_MAIN(tst_QMLCodeFormatter)
 #include "tst_qmlcodeformatter.moc"