diff --git a/src/plugins/cpptools/cppcodecompletion.cpp b/src/plugins/cpptools/cppcodecompletion.cpp
index 8988fe12367d2c1bb4060fc11d547312eaa6d495..aef68ee6d331cb1475ec2e30f5960512778ea02b 100644
--- a/src/plugins/cpptools/cppcodecompletion.cpp
+++ b/src/plugins/cpptools/cppcodecompletion.cpp
@@ -896,7 +896,10 @@ bool CppCodeCompletion::completeConstructors(Class *klass)
 
     for (unsigned i = 0; i < klass->memberCount(); ++i) {
         Symbol *member = klass->memberAt(i);
-        if (! member->type()->isFunctionType())
+        FullySpecifiedType memberTy = member->type();
+        if (! memberTy)
+            continue;
+        else if (! memberTy->isFunctionType())
             continue;
         else if (! member->identity())
             continue;
@@ -930,8 +933,12 @@ bool CppCodeCompletion::completeQtMethod(CPlusPlus::FullySpecifiedType,
     QSet<QString> signatures;
     foreach (TypeOfExpression::Result p, results) {
         FullySpecifiedType ty = p.first;
+        if (! ty)
+            continue;
+
         if (ReferenceType *refTy = ty->asReferenceType())
             ty = refTy->elementType();
+
         if (PointerType *ptrTy = ty->asPointerType())
             ty = ptrTy->elementType();
         else