diff --git a/src/dispatch.js b/src/dispatch.js
index <HASH>..<HASH> 100644
--- a/src/dispatch.js
+++ b/src/dispatch.js
@@ -1,10 +1,11 @@
-export default function dispatch(node, type) {
+export default function dispatch(node, type, detail) {
   var document = node.ownerDocument, event = document.defaultView.CustomEvent;
   if (typeof event === "function") {
-    event = new event(type);
+    event = new event(type, {detail});
   } else {
     event = document.createEvent("Event");
     event.initEvent(type, false, false);
+    event.detail = detail || {};
   }
   node.dispatchEvent(event);
 }
diff --git a/src/runtime.js b/src/runtime.js
index <HASH>..<HASH> 100644
--- a/src/runtime.js
+++ b/src/runtime.js
@@ -187,7 +187,7 @@ function variable_displayError(variable, error) {
   if (!node) return;
   node.className = "O O--error";
   node.textContent = error + ""; // TODO Pretty stack trace.
-  dispatch(node, "update");
+  dispatch(node, "error", {error});
 }
 
 function variable_displayValue(variable, value) {
Dispatching error event instead of setting property.