diff --git a/src/plugins/cpptools/cppcodecompletion.cpp b/src/plugins/cpptools/cppcodecompletion.cpp
index c777141dd81849248dda891c31d7a5ef0aa67bd0..6923a24471ffcd45241f36b091dd8f6b59b37846 100644
--- a/src/plugins/cpptools/cppcodecompletion.cpp
+++ b/src/plugins/cpptools/cppcodecompletion.cpp
@@ -1675,12 +1675,15 @@ void CppCodeCompletion::completeClass(ClassOrNamespace *b, bool staticLookup)
 
             for (Scope::iterator it = scope->firstMember(); it != scope->lastMember(); ++it) {
                 Symbol *member = *it;
-                if (member->isFriend())
+                if (member->isFriend()
+                        || member->isQtPropertyDeclaration()
+                        || member->isQtEnum()) {
                     continue;
-                else if (! staticLookup && (member->isTypedef() ||
+                } else if (! staticLookup && (member->isTypedef() ||
                                             member->isEnum()    ||
-                                            member->isClass()))
+                                            member->isClass())) {
                     continue;
+                }
 
                 addCompletionItem(member);
             }
diff --git a/src/shared/cplusplus/Symbol.cpp b/src/shared/cplusplus/Symbol.cpp
index 285a9185bb05626de77f129dc325fcbf7f0d11e9..7a8cbcdc1009b00c7be6aa164adfff4ecca8e641 100644
--- a/src/shared/cplusplus/Symbol.cpp
+++ b/src/shared/cplusplus/Symbol.cpp
@@ -373,6 +373,12 @@ bool Symbol::isClass() const
 bool Symbol::isForwardClassDeclaration() const
 { return asForwardClassDeclaration() != 0; }
 
+bool Symbol::isQtPropertyDeclaration() const
+{ return asQtPropertyDeclaration() != 0; }
+
+bool Symbol::isQtEnum() const
+{ return asQtEnum() != 0; }
+
 bool Symbol::isBlock() const
 { return asBlock() != 0; }