diff --git a/qt/python/mantidqt/widgets/ipythonconsole/widget.py b/qt/python/mantidqt/widgets/ipythonconsole/widget.py
index 4802640b15d70379d89101b114c989fa934412b2..7d8c44a628c81d5380d2d039b6d11378b12e0c3d 100644
--- a/qt/python/mantidqt/widgets/ipythonconsole/widget.py
+++ b/qt/python/mantidqt/widgets/ipythonconsole/widget.py
@@ -39,6 +39,15 @@ from mantidqt.utils.async import blocking_async_task
 class InProcessIPythonConsole(RichIPythonWidget):
 
     def __init__(self, *args, **kwargs):
+        """
+        A constructor matching that of RichIPythonWidget
+        :param args: Positional arguments passed directly to RichIPythonWidget
+        :param kwargs: Keyword arguments. The following are used by this
+        widget:
+          - banner_extra: An additinal string to append to the default banner
+        """
+        # remove our arguments
+        banner_extra = kwargs.pop("banner_extra", "")
         super(InProcessIPythonConsole, self).__init__(*args, **kwargs)
 
         # create an in-process kernel
@@ -51,6 +60,10 @@ class InProcessIPythonConsole(RichIPythonWidget):
         shell = kernel.shell
         shell.run_code = async_wrapper(shell.run_code, shell)
 
+        # custom banner
+        if banner_extra:
+            self.banner += "\n" + banner_extra
+
         # attach channels and start kenel
         kernel_client = kernel_manager.client()
         kernel_client.start_channels()
diff --git a/qt/python/mantidqt/widgets/test/test_ipythonconsole.py b/qt/python/mantidqt/widgets/test/test_ipythonconsole.py
index 02fd4399127d4c4a7fa7c86a10d24a8d8c0a5610..3ba6575b90bb8a08599f7c8eed9858d23872491a 100644
--- a/qt/python/mantidqt/widgets/test/test_ipythonconsole.py
+++ b/qt/python/mantidqt/widgets/test/test_ipythonconsole.py
@@ -34,6 +34,11 @@ class InProcessIPythonConsoleTest(unittest.TestCase):
         self.assertTrue(hasattr(widget, "kernel_manager"))
         self.assertTrue(hasattr(widget, "kernel_client"))
 
+    def test_banner_extra_updates_banner(self):
+        widget = InProcessIPythonConsole(banner_extra="foo")
+        self.assertTrue(widget.banner.endswith("foo"))
+        self.assertTrue(widget.banner.startswith("Python"))
+
 
 if __name__ == '__main__':
     unittest.main()