diff --git a/src/plugins/qmljseditor/qmljscodecompletion.cpp b/src/plugins/qmljseditor/qmljscodecompletion.cpp
index 7981fa1ed8fffff97b09076792bc62681c24183e..3fd2d3db4ce9f67d862feb2c7cf32d0371ff7e9d 100644
--- a/src/plugins/qmljseditor/qmljscodecompletion.cpp
+++ b/src/plugins/qmljseditor/qmljscodecompletion.cpp
@@ -479,7 +479,8 @@ CodeCompletion::CodeCompletion(ModelManagerInterface *modelManager, QObject *par
     : TextEditor::ICompletionCollector(parent),
       m_modelManager(modelManager),
       m_editor(0),
-      m_startPosition(0)
+      m_startPosition(0),
+      m_restartCompletion(false)
 {
     Q_ASSERT(modelManager);
 }
@@ -494,7 +495,7 @@ int CodeCompletion::startPosition() const
 { return m_startPosition; }
 
 bool CodeCompletion::shouldRestartCompletion()
-{ return false; }
+{ return m_restartCompletion; }
 
 bool CodeCompletion::supportsEditor(TextEditor::ITextEditable *editor)
 {
@@ -649,6 +650,8 @@ void CodeCompletion::addCompletionsPropertyLhs(
 
 int CodeCompletion::startCompletion(TextEditor::ITextEditable *editor)
 {
+    m_restartCompletion = false;
+
     m_editor = editor;
 
     QmlJSTextEditor *edit = qobject_cast<QmlJSTextEditor *>(m_editor->widget());
@@ -882,6 +885,9 @@ void CodeCompletion::complete(const TextEditor::CompletionItem &item)
     const int length = m_editor->position() - m_startPosition;
     m_editor->setCurPos(m_startPosition);
     m_editor->replace(length, toInsert);
+
+    if (toInsert.endsWith(QLatin1Char('.')))
+        m_restartCompletion = true;
 }
 
 bool CodeCompletion::partiallyComplete(const QList<TextEditor::CompletionItem> &completionItems)
diff --git a/src/plugins/qmljseditor/qmljscodecompletion.h b/src/plugins/qmljseditor/qmljscodecompletion.h
index 6df5763be0c5ed4d24ffcc2aedac84bee9cc843f..3b2ae62992a15f9048d98dfaf6df2aaf16d837c1 100644
--- a/src/plugins/qmljseditor/qmljscodecompletion.h
+++ b/src/plugins/qmljseditor/qmljscodecompletion.h
@@ -96,6 +96,7 @@ private:
     QList<TextEditor::CompletionItem> m_snippets;
     QDateTime m_snippetFileLastModified;
     QPointer<FunctionArgumentWidget> m_functionArgumentWidget;
+    bool m_restartCompletion;
 };