diff --git a/src/standard/configure.html b/src/standard/configure.html
index 023104e9a9..c492bdeac7 100644
--- a/src/standard/configure.html
+++ b/src/standard/configure.html
@@ -149,14 +149,17 @@
var node = this._nodes[x.effect.index];
var name = x.effect.propertyName;
// seeding configuration only
- if (node._propertyEffects && node._propertyEffects[name]) {
+ var isAttr = (x.effect.kind == 'attribute');
+ var hasEffect = (node._propertyEffects &&
+ node._propertyEffects[name]);
+ if (node._configValue && (hasEffect || !isAttr)) {
var value = (p === x.effect.value) ? config[p] :
this._get(x.effect.value, config);
- if (x.effect.kind == 'attribute') {
+ if (isAttr) {
// For attribute bindings, flow through the same ser/deser
// process to ensure the value is the same as if it were
// bound through the attribute
- value = node.deserialize(node.serialize(value),
+ value = node.deserialize(this.serialize(value),
node._propertyInfo[name].type);
}
node._configValue(name, value);
diff --git a/test/unit/configure-elements.html b/test/unit/configure-elements.html
index 06b3475799..a56bdafa4f 100644
--- a/test/unit/configure-elements.html
+++ b/test/unit/configure-elements.html
@@ -146,9 +146,28 @@
+
+
+
+
+