diff --git a/src/micro/attributes.html b/src/micro/attributes.html
index 29df6704ad..0cf31246a4 100644
--- a/src/micro/attributes.html
+++ b/src/micro/attributes.html
@@ -243,7 +243,7 @@
case 'object':
if (value instanceof Date) {
- return value;
+ return value.toString();
} else if (value) {
try {
return JSON.stringify(value);
diff --git a/src/standard/configure.html b/src/standard/configure.html
index cb244a7c34..023104e9a9 100644
--- a/src/standard/configure.html
+++ b/src/standard/configure.html
@@ -153,6 +153,9 @@
var value = (p === x.effect.value) ? config[p] :
this._get(x.effect.value, config);
if (x.effect.kind == 'attribute') {
+ // 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),
node._propertyInfo[name].type);
}