diff --git a/src/plugins/qmljseditor/qmljscompletionassist.cpp b/src/plugins/qmljseditor/qmljscompletionassist.cpp
index 46f5e32151efee6fa8a7b781c5f697acd7e88176..2e09bfc4d6c2382cff95c5d7c0792c5551e5c467 100644
--- a/src/plugins/qmljseditor/qmljscompletionassist.cpp
+++ b/src/plugins/qmljseditor/qmljscompletionassist.cpp
@@ -84,6 +84,7 @@ class EnumerateProperties: private Interpreter::MemberProcessor
     QHash<QString, const Interpreter::Value *> _properties;
     bool _globalCompletion;
     bool _enumerateGeneratedSlots;
+    bool _enumerateSlots;
     const Interpreter::Context *_context;
     const Interpreter::ObjectValue *_currentObject;
 
@@ -91,6 +92,7 @@ public:
     EnumerateProperties(const Interpreter::Context *context)
         : _globalCompletion(false),
           _enumerateGeneratedSlots(false),
+          _enumerateSlots(true),
           _context(context),
           _currentObject(0)
     {
@@ -106,6 +108,11 @@ public:
         _enumerateGeneratedSlots = enumerate;
     }
 
+    void setEnumerateSlots(bool enumerate)
+    {
+        _enumerateSlots = enumerate;
+    }
+
     QHash<QString, const Interpreter::Value *> operator ()(const Interpreter::Value *value)
     {
         _processed.clear();
@@ -155,7 +162,8 @@ private:
 
     virtual bool processSlot(const QString &name, const Interpreter::Value *value)
     {
-        insertProperty(name, value);
+        if (_enumerateSlots)
+            insertProperty(name, value);
         return true;
     }
 
@@ -494,6 +502,7 @@ IAssistProposal *QmlJSCompletionAssistProcessor::perform(const IAssistInterface
             EnumerateProperties enumerateProperties(context);
             enumerateProperties.setGlobalCompletion(true);
             enumerateProperties.setEnumerateGeneratedSlots(true);
+            enumerateProperties.setEnumerateSlots(false);
 
             // id: is special
             BasicProposalItem *idProposalItem = new QmlJSAssistProposalItem;