diff --git a/preload/main.py b/preload/main.py
index c120f6041131c00a656caeff01dce58715567842..1d6d4a9ecd60b5f56d2d4e294f9fdbe588463542 100644
--- a/preload/main.py
+++ b/preload/main.py
@@ -158,22 +158,20 @@ class Clock:
         colored = False
         try:
             with display.open() as disp:
-                button_pressed = False
                 while True:
                     self.updateClock(disp)
                     if self.run_once:
                         break
 
                     # check for button presses
-                    v = buttons.read(buttons.BOTTOM_LEFT | buttons.BOTTOM_RIGHT)
-                    if v == 0:
-                        button_pressed = False
+                    v = buttons.read(buttons.BOTTOM_LEFT | buttons.BOTTOM_RIGHT | buttons.TOP_RIGHT)
+                    button_pressed = v != 0
 
-                    if not button_pressed and v & buttons.BOTTOM_LEFT != 0:
+                    if button_pressed and v & buttons.BOTTOM_LEFT != 0:
                         button_pressed = True
                         self.setTheme(self.theme - 1)
                         self.writeConfig()
-                    elif not button_pressed and v & buttons.BOTTOM_RIGHT != 0:
+                    elif button_pressed and v & buttons.BOTTOM_RIGHT != 0:
                         button_pressed = True
                         self.setTheme(self.theme + 1)
                         self.writeConfig()