diff --git a/src/libs/qmljs/qmljsinterpreter.cpp b/src/libs/qmljs/qmljsinterpreter.cpp
index 16234d6dc1ec965a4eaf84416ff5d39d95217c3a..f46fde063afb103f719b705ab2207eae7638008d 100644
--- a/src/libs/qmljs/qmljsinterpreter.cpp
+++ b/src/libs/qmljs/qmljsinterpreter.cpp
@@ -3063,7 +3063,8 @@ bool ASTPropertyReference::getSourceLocation(QString *fileName, int *line, int *
 
 const Value *ASTPropertyReference::value(Context *context) const
 {
-    if (_ast->expression) {
+    if (_ast->expression
+            && (!_ast->memberType || _ast->memberType->asString() == QLatin1String("variant"))) {
         Evaluate check(context);
         return check(_ast->expression);
     }