diff --git a/src/lib/bind/accessors.html b/src/lib/bind/accessors.html
index 679ffae269..66175deae6 100644
--- a/src/lib/bind/accessors.html
+++ b/src/lib/bind/accessors.html
@@ -219,7 +219,12 @@
if (targetPath) {
this._notifyPath(this._fixPath(path, property, targetPath), value);
} else {
- value = value !== undefined ? value : target[property];
+ // TODO(sorvell): even though we have a `value` argument, we *must*
+ // lookup the current value of the property. Multiple listeners and
+ // queued events during configuration can theoretically lead to
+ // divergence of the passed value from the current value, but we
+ // really need to track down a specific case where this happens.
+ value = target[property];
if (!isStructured) {
this[path] = value;
} else {