diff --git a/src/module/module_sdl2.c b/src/module/module_sdl2.c
index 3bcc6e126cb619c44b03eb7d2608e0b6cdab86b0..15698da76a18302044ff1198e4826c792450ba3f 100644
--- a/src/module/module_sdl2.c
+++ b/src/module/module_sdl2.c
@@ -491,7 +491,7 @@ module_sdl2_close(struct module_sdl2_window *win)
 {
     RETURN_UNLESS(win && win->window, "Invalid arguments", NOTHING);
     win->mpv_time_pos = win->mpv_duration = 0;
-    win->state = STATE_STOP;
+    SET_STATE_FLAG(win->state, STOP);
     RETURN_UNLESS(win->mpv, "Missing mpv ctx", NOTHING);
     static const char *cmd[] = { "stop", NULL };
     mpv_command_async((mpv_handle *) win->mpv, 0, cmd);
diff --git a/src/module/mpv.c b/src/module/mpv.c
index ecbfc7de1013bc0368b55c759f9b6a3485796402..762bd21f346a6e0c3b29f78584f03b537254d38b 100644
--- a/src/module/mpv.c
+++ b/src/module/mpv.c
@@ -184,18 +184,18 @@ loop:
 
     switch (event->event_id) {
     case MPV_EVENT_PAUSE:
-        *state = STATE_PAUSE;
+        SET_STATE_FLAG(*state, PAUSE);
         lkt_queue_send(queue, lkt_event_play_toggle, LKT_PLAY_PAUSE);
         break;
 
     case MPV_EVENT_UNPAUSE:
-        *state = STATE_PLAY;
+        SET_STATE_FLAG(*state, PLAY);
         lkt_queue_send(queue, lkt_event_play_toggle, LKT_PLAY_PLAY);
         break;
 
     case MPV_EVENT_SHUTDOWN:
         *time_pos = (*time_duration = 0);
-        *state = STATE_STOP;
+        SET_STATE_FLAG(*state, STOP);
         lkt_queue_send(queue, lkt_event_play_toggle, LKT_PLAY_STOP);
         reg_call(mod->reg, "close", 1, mod->data);
         return 1;
@@ -204,7 +204,7 @@ loop:
         return 1;
 
     case MPV_EVENT_START_FILE:
-        *state = STATE_PLAY;
+        SET_STATE_FLAG(*state, PLAY);
         *hinib = false;
         LOG_DEBUG("WINDOW", "Start of file!");
         break;
@@ -246,10 +246,10 @@ loop:
             && prop->format == MPV_FORMAT_FLAG) {
             if (* (bool *) prop->data) {
                 lkt_queue_send(queue, lkt_event_play_toggle, LKT_PLAY_PAUSE);
-                *state = STATE_PAUSE;
+                SET_STATE_FLAG(*state, PAUSE);
             } else {
                 lkt_queue_send(queue, lkt_event_play_toggle, LKT_PLAY_PLAY);
-                *state = STATE_PLAY;
+                SET_STATE_FLAG(*state, PLAY);
             }
         }
         break;
diff --git a/src/module/mpv.h b/src/module/mpv.h
index d50182e6f11b6c252132f27a33b798a58dec2b2e..7952435c07c5ffd9ff6563794c869906cd4fd6e4 100644
--- a/src/module/mpv.h
+++ b/src/module/mpv.h
@@ -27,3 +27,5 @@ enum {
     STATE_PAUSE = 2,
 };
 
+#define SET_STATE_FLAG(sta, STATUS) \
+    (LOG_DEBUG("WINDOW", "Set status flag to " #STATUS), (sta) = STATE_##STATUS)