diff --git a/src/libs/qmljs/qmljsinterpreter.cpp b/src/libs/qmljs/qmljsinterpreter.cpp
index 34d7ac95f9e9d7dbdfd70d40ac9ddcebc3e5ef44..caf472a12f52eea53ab462331e20dc972e7dd141 100644
--- a/src/libs/qmljs/qmljsinterpreter.cpp
+++ b/src/libs/qmljs/qmljsinterpreter.cpp
@@ -2026,11 +2026,14 @@ bool ASTObjectValue::getSourceLocation(QString *fileName, int *line, int *column
 
 void ASTObjectValue::processMembers(MemberProcessor *processor) const
 {
-    foreach (ASTPropertyReference *ref, _properties)
+    foreach (ASTPropertyReference *ref, _properties) {
         processor->processProperty(ref->ast()->name->asString(), ref);
+        // ### Should get a different value?
+        processor->processGeneratedSlot(ref->onChangedSlotName(), ref);
+    }
     foreach (ASTSignalReference *ref, _signals) {
-        // ### These two should get different values?
         processor->processSignal(ref->ast()->name->asString(), ref);
+        // ### Should get a different value?
         processor->processGeneratedSlot(ref->slotName(), ref);
     }
 
@@ -2125,6 +2128,11 @@ const Value *QmlPrototypeReference::value(Context *context) const
 ASTPropertyReference::ASTPropertyReference(UiPublicMember *ast, const QmlJS::Document *doc, Engine *engine)
     : Reference(engine), _ast(ast), _doc(doc)
 {
+    const QString propertyName = ast->name->asString();
+    _onChangedSlotName = QLatin1String("on");
+    _onChangedSlotName += propertyName.at(0).toUpper();
+    _onChangedSlotName += propertyName.midRef(1);
+    _onChangedSlotName += QLatin1String("Changed");
 }
 
 ASTPropertyReference::~ASTPropertyReference()
diff --git a/src/libs/qmljs/qmljsinterpreter.h b/src/libs/qmljs/qmljsinterpreter.h
index 0df1d9cdb229adfc0426f96e76e9858528e75f2d..8f0fa51532f06290c42a25f1a0f97f73a53b27c7 100644
--- a/src/libs/qmljs/qmljsinterpreter.h
+++ b/src/libs/qmljs/qmljsinterpreter.h
@@ -685,12 +685,14 @@ class QMLJS_EXPORT ASTPropertyReference: public Reference
 {
     AST::UiPublicMember *_ast;
     const Document *_doc;
+    QString _onChangedSlotName;
 
 public:
     ASTPropertyReference(AST::UiPublicMember *ast, const Document *doc, Engine *engine);
     virtual ~ASTPropertyReference();
 
     AST::UiPublicMember *ast() const { return _ast; }
+    QString onChangedSlotName() const { return _onChangedSlotName; }
 
     virtual bool getSourceLocation(QString *fileName, int *line, int *column) const;
     virtual const Value *value(Context *context) const;