+        dispatcher.connect(receiver=self.addHistory, signal="Shell.addHistory")
+        dispatcher.connect(receiver=self.clearHistory, signal="Shell.clearHistory")
+        dispatcher.connect(receiver=self.loadHistory, signal="Shell.loadHistory")
+
+        df = self.GetFont()
+        font = wx.Font(df.GetPointSize(), wx.TELETYPE, wx.NORMAL, wx.NORMAL)
+        self.SetFont(font)
+
+    def loadHistory(self, history):
+        # preload the existing history, if any
+        hist = history[:]
+        hist.reverse()
+        self.SetValue('\n'.join(hist) + '\n')
+        self.SetInsertionPointEnd()