diff --git a/BUGS b/BUGS
new file mode 100644
index 0000000..ed78482
--- /dev/null
+++ b/BUGS
@@ -0,0 +1 @@
+Evaluator::quit(): throwing exceptions from event handlers is not supported in Qt. Need to manually keep track of some sort of evaluator state and quit when necessary.
diff --git a/PPrint.h b/PPrint.h
index 4020752..2134b57 100644
--- a/PPrint.h
+++ b/PPrint.h
@@ -21,8 +21,6 @@
     QString out;
     int lastType = -1;
 
-    qInfo() << "pprint specialized";
-
     for (const T &v : val)
     {
         if ((lastType != v.type() || v.type() != T::SYM) && lastType != -1)
diff --git a/StdLib.h b/StdLib.h
index 0cc98a5..75d415d 100644
--- a/StdLib.h
+++ b/StdLib.h
@@ -10,7 +10,7 @@
 	void load(Evaluator &eval);
 
 private:
-	Function _print{"Print"},
+    Function _print{"Print"},
         _prout{"Prout"},
         _sleep{"Sleep"};
 };
diff --git a/ide/Notebook.cpp b/ide/Notebook.cpp
index a5baa0c..72261cf 100644
--- a/ide/Notebook.cpp
+++ b/ide/Notebook.cpp
@@ -55,6 +55,7 @@
 
 void Notebook::quitCell(QUuid uuid)
 {
+    qDebug() << "Quitting cell" << uuid;
     _rt->unqueueCell(Cell::cellFromUuid(uuid));
     _runningAll = false;
 }
diff --git a/ide/qml/NbWindow.qml b/ide/qml/NbWindow.qml
index 858fb5e..8b51793 100644
--- a/ide/qml/NbWindow.qml
+++ b/ide/qml/NbWindow.qml
@@ -190,6 +190,10 @@
                         notebook.runCell(uuid)
                     }
 
+                    onQuitClicked: {
+                        notebook.quitCell(uuid)
+                    }
+
                     onCellFocused: {
                         codeEditor.currentIndex = index
                     }
diff --git a/ide/qml/NotebookCell.qml b/ide/qml/NotebookCell.qml
index 7653dd7..d1c285b 100644
--- a/ide/qml/NotebookCell.qml
+++ b/ide/qml/NotebookCell.qml
@@ -19,6 +19,7 @@
     signal cellFocused()
     signal cellUnfocused()
     signal runClicked()
+    signal quitClicked()
     signal deleteClicked()
 
     height: column.height
@@ -61,13 +62,20 @@
 
                 RoundButton {
                     Layout.alignment: Qt.AlignTop
-                    icon.source: iconForState(root.state)
+                    icon.source: iconForState(root.status)
                     icon.color: Material.color(Material.Grey, Material.Shade600)
                     flat: true
 
-                    onClicked: root.runClicked()
+                    onClicked: {
+                        if (root.status == Cell.IDLE)
+                            root.runClicked()
+                        else if (root.status == Cell.RUNNING)
+                            root.quitClicked()
+                    }
 
                     function iconForState(state) {
+                        console.log("iconForState", state);
+
                         if (state === Cell.RUNNING)
                             return "qrc:///icons/square.svg"
 
