- emit (boost::bind (boost::ref(Changed), shared_from_this(), p, _change_signals_frequent));
- } catch (boost::bad_weak_ptr) {
+ if (c == CHANGE_TYPE_PENDING || c == CHANGE_TYPE_CANCELLED) {
+ Change (c, shared_from_this(), p, _change_signals_frequent);
+ } else {
+ emit (boost::bind (boost::ref(Change), c, shared_from_this(), p, _change_signals_frequent));
+ }
+ } catch (std::bad_weak_ptr &) {