diff --git a/src/plugins/qmljseditor/qmlcodecompletion.cpp b/src/plugins/qmljseditor/qmlcodecompletion.cpp
index 28bb8d1194ecceac71c6043e474f9d4e79c1644a..1b8e730fab4b6da3ea3d230871297d5e841a3770 100644
--- a/src/plugins/qmljseditor/qmlcodecompletion.cpp
+++ b/src/plugins/qmljseditor/qmlcodecompletion.cpp
@@ -852,13 +852,23 @@ void QmlCodeCompletion::updateSnippets()
     file.close();
 }
 
+static bool qmlCompletionItemLessThan(const TextEditor::CompletionItem &l, const TextEditor::CompletionItem &r)
+{
+    if (l.text.at(0).isUpper() && r.text.at(0).isLower())
+        return false;
+    else if (l.text.at(0).isLower() && r.text.at(0).isUpper())
+        return true;
+
+    return l.text < r.text;
+}
+
 QList<TextEditor::CompletionItem> QmlCodeCompletion::getCompletions()
 {
     QList<TextEditor::CompletionItem> completionItems;
 
     completions(&completionItems);
 
-    qStableSort(completionItems.begin(), completionItems.end(), completionItemLessThan);
+    qStableSort(completionItems.begin(), completionItems.end(), qmlCompletionItemLessThan);
 
     // Remove duplicates
     QString lastKey;