diff --git a/IPython/frontend/html/notebook/static/js/kernel.js b/IPython/frontend/html/notebook/static/js/kernel.js
index 0d05fc0..04a2218 100644
--- a/IPython/frontend/html/notebook/static/js/kernel.js
+++ b/IPython/frontend/html/notebook/static/js/kernel.js
@@ -262,6 +262,7 @@ var IPython = (function (IPython) {
         // complete_reply message documented here:
         //
         // http://ipython.org/ipython-doc/dev/development/messaging.html#complete
+        callbacks = callbacks || {};
         var content = {
             text : '',
             line : line,
@@ -303,7 +304,7 @@ var IPython = (function (IPython) {
 
 
     Kernel.prototype.set_callbacks_for_msg = function (msg_id, callbacks) {
-        this._msg_callbacks[msg_id] = callbacks;
+        this._msg_callbacks[msg_id] = callbacks || {};
     }
 
 
@@ -320,7 +321,7 @@ var IPython = (function (IPython) {
             }
         };
 
-        if (content.payload !== undefined) {
+        if (content.payload !== undefined && callbacks.cell !== undefined) {
             var payload = content.payload || [];
             this._handle_payload(callbacks.cell, payload);
         }
diff --git a/docs/examples/widgets/directview/directview.ipynb b/docs/examples/widgets/directview/directview.ipynb
index e4145f4..fcd58ec 100644
--- a/docs/examples/widgets/directview/directview.ipynb
+++ b/docs/examples/widgets/directview/directview.ipynb
@@ -9,7 +9,25 @@
     {
      "cell_type": "code",
      "input": [
-      ""
+      "from directview import interact",
+      "from IPython.parallel import Client"
+     ],
+     "language": "python",
+     "outputs": []
+    },
+    {
+     "cell_type": "code",
+     "input": [
+      "c = Client()",
+      "dv = c[:]"
+     ],
+     "language": "python",
+     "outputs": []
+    },
+    {
+     "cell_type": "code",
+     "input": [
+      "interact(dv)"
      ],
      "language": "python",
      "outputs": []