diff --git a/pycardium/modules/py/simple_menu.py b/pycardium/modules/py/simple_menu.py
index 42b117cc7998ac94397bee646f1c3fa82538af11..22c80a0b666cc3681ef2838304bea4d651f8896c 100644
--- a/pycardium/modules/py/simple_menu.py
+++ b/pycardium/modules/py/simple_menu.py
@@ -1,6 +1,8 @@
 import buttons
 import color
 import display
+import sys
+import utime
 
 
 def button_events():
@@ -171,18 +173,55 @@ class Menu:
 
         self.disp.update()
 
+    def error(self, line1, line2=""):
+        """
+        Display an error message.
+
+        :param str line1: First line of the error message.
+        :param str line2: Second line of the error message.
+
+        .. versionadded:: 1.9
+        """
+        self.disp.clear(color.COMMYELLOW)
+
+        offset = max(0, (160 - len(line1) * 14) // 2)
+        self.disp.print(
+            line1, posx=offset, posy=20, fg=color.COMMYELLOW_DARK, bg=color.COMMYELLOW
+        )
+
+        offset = max(0, (160 - len(line2) * 14) // 2)
+        self.disp.print(
+            line2, posx=offset, posy=40, fg=color.COMMYELLOW_DARK, bg=color.COMMYELLOW
+        )
+
+        self.disp.update()
+
     def run(self):
         """Start the event-loop."""
         for ev in button_events():
             if ev == buttons.BOTTOM_RIGHT:
                 self.draw_menu(-8)
                 self.idx = (self.idx + 1) % len(self.entries)
-                self.on_scroll(self.entries[self.idx], self.idx)
+                try:
+                    self.on_scroll(self.entries[self.idx], self.idx)
+                except Exception as e:
+                    print("Exception during menu.on_scroll():")
+                    sys.print_exception(e)
             elif ev == buttons.BOTTOM_LEFT:
                 self.draw_menu(8)
                 self.idx = (self.idx + len(self.entries) - 1) % len(self.entries)
-                self.on_scroll(self.entries[self.idx], self.idx)
+                try:
+                    self.on_scroll(self.entries[self.idx], self.idx)
+                except Exception as e:
+                    print("Exception during menu.on_scroll():")
+                    sys.print_exception(e)
             elif ev == buttons.TOP_RIGHT:
-                self.on_select(self.entries[self.idx], self.idx)
+                try:
+                    self.on_select(self.entries[self.idx], self.idx)
+                except Exception as e:
+                    print("Menu crashed!")
+                    sys.print_exception(e)
+                    self.error("Menu", "crashed")
+                    utime.sleep(1.0)
 
             self.draw_menu()