diff --git a/src/libs/qmljs/qmljsinterpreter.cpp b/src/libs/qmljs/qmljsinterpreter.cpp
index be500a0ae5c4f86c637a36e27d35cb4bdd381f7e..4fcfc49247ff31c5bf27789821ba33cbe579b311 100644
--- a/src/libs/qmljs/qmljsinterpreter.cpp
+++ b/src/libs/qmljs/qmljsinterpreter.cpp
@@ -194,7 +194,10 @@ void QmlObjectValue::processMembers(MemberProcessor *processor) const
 
     // process the meta methods
     for (int index = 0; index < _metaObject->methodCount(); ++index) {
-        FakeMetaMethod method = _metaObject->method(index);
+        const FakeMetaMethod method = _metaObject->method(index);
+        if (_componentVersion.isValid() && _componentVersion.minorVersion() < method.revision())
+            continue;
+
         QString methodName;
         const Value *signature = findOrCreateSignature(index, method, &methodName);
 
@@ -217,7 +220,9 @@ void QmlObjectValue::processMembers(MemberProcessor *processor) const
 
     // process the meta properties
     for (int index = 0; index < _metaObject->propertyCount(); ++index) {
-        FakeMetaProperty prop = _metaObject->property(index);
+        const FakeMetaProperty prop = _metaObject->property(index);
+        if (_componentVersion.isValid() && _componentVersion.minorVersion() < prop.revision())
+            continue;
 
         const QString propertyName = prop.name();
         processor->processProperty(propertyName, propertyValue(prop));