diff --git a/drivers/ps2/ps2_mouse.c b/drivers/ps2/ps2_mouse.c
index 88c9bdcebe..ef1a0e26f9 100644
--- a/drivers/ps2/ps2_mouse.c
+++ b/drivers/ps2/ps2_mouse.c
@@ -88,6 +88,8 @@ void ps2_mouse_task(void) {
 #    endif
     } else {
         if (debug_mouse) print("ps2_mouse: fail to get mouse packet\n");
+        /* return here to avoid updating the mouse button state */
+        return;
     }
 #else
     if (pbuf_has_data()) {
@@ -99,6 +101,8 @@ void ps2_mouse_task(void) {
 #    endif
     } else {
         if (debug_mouse) print("ps2_mouse: fail to get mouse packet\n");
+        /* return here to avoid updating the mouse button state */
+        return;
     }
 #endif