diff --git a/IPython/html/static/notebook/js/notificationarea.js b/IPython/html/static/notebook/js/notificationarea.js
index 0f52b7e..fdcf5cf 100644
--- a/IPython/html/static/notebook/js/notificationarea.js
+++ b/IPython/html/static/notebook/js/notificationarea.js
@@ -86,6 +86,18 @@ var IPython = (function (IPython) {
IPython.save_widget.update_document_title();
knw.set_message("Restarting kernel", 2000);
});
+
+ $([IPython.events]).on('status_autorestarting.Kernel',function () {
+ IPython.dialog.modal({
+ title: "Kernel Restarting",
+ body: "The kernel appears to have died. It is being restarted.",
+ buttons: {
+ OK : {
+ class : "btn-primary"
+ }
+ }
+ });
+ });
$([IPython.events]).on('status_interrupting.Kernel',function () {
knw.set_message("Interrupting kernel");
diff --git a/IPython/html/static/services/kernels/js/kernel.js b/IPython/html/static/services/kernels/js/kernel.js
index ef7adb4..98d744c 100644
--- a/IPython/html/static/services/kernels/js/kernel.js
+++ b/IPython/html/static/services/kernels/js/kernel.js
@@ -448,6 +448,11 @@ var IPython = (function (IPython) {
} else if (content.execution_state === 'idle') {
$([IPython.events]).trigger('status_idle.Kernel', {kernel: this});
} else if (content.execution_state === 'restarting') {
+ // autorestarting is distinct from restarting,
+ // in that it means the kernel died and the server is restarting it.
+ // status_restarting sets the notification widget,
+ // autorestart shows the more prominent dialog.
+ $([IPython.events]).trigger('status_autorestarting.Kernel', {kernel: this});
$([IPython.events]).trigger('status_restarting.Kernel', {kernel: this});
} else if (content.execution_state === 'dead') {
this.stop_channels();