diff -r ef0373b55136 -r 758a864f9613 src/declarative/qml/qdeclarativevme.cpp --- a/src/declarative/qml/qdeclarativevme.cpp Fri Sep 17 08:34:18 2010 +0300 +++ b/src/declarative/qml/qdeclarativevme.cpp Mon Oct 04 01:19:32 2010 +0300 @@ -621,14 +621,15 @@ case QDeclarativeInstruction::StoreSignal: { QObject *target = stack.top(); - QObject *context = stack.at(stack.count() - 1 - instr.assignBinding.context); - + QObject *context = stack.at(stack.count() - 1 - instr.storeSignal.context); + QMetaMethod signal = target->metaObject()->method(instr.storeSignal.signalIndex); QDeclarativeBoundSignal *bs = new QDeclarativeBoundSignal(target, signal, target); QDeclarativeExpression *expr = new QDeclarativeExpression(ctxt, context, primitives.at(instr.storeSignal.value)); expr->setSourceLocation(comp->name, instr.line); + static_cast(QObjectPrivate::get(expr))->name = datas.at(instr.storeSignal.name); bs->setExpression(expr); } break;