diff --git a/modules/video_output/kva.c b/modules/video_output/kva.c
index 19ab65f71cb434bb0efaa7d21d353f7cb1318f36..4151ffa419e6f956778ce5973bd0856683903209 100644
--- a/modules/video_output/kva.c
+++ b/modules/video_output/kva.c
@@ -437,7 +437,8 @@ static int Control( vout_display_t *vd, int query, va_list args )
         POINTL ptl;
 
         WinQueryPointerPos( HWND_DESKTOP, &ptl );
-        if( WinWindowFromPoint( HWND_DESKTOP, &ptl, TRUE ) == sys->client )
+        if( !sys->is_mouse_hidden &&
+            WinWindowFromPoint( HWND_DESKTOP, &ptl, TRUE ) == sys->client )
         {
             WinShowPointer( HWND_DESKTOP, FALSE );
             sys->is_mouse_hidden = true;