diff --git a/inc/lektor/queue.h b/inc/lektor/queue.h
index 2d3951496b4ebcc10d6747333f1265d8718990e0..f1deec241b160d3795802bf23cd41f3bb18544a7 100644
--- a/inc/lektor/queue.h
+++ b/inc/lektor/queue.h
@@ -22,13 +22,18 @@ enum {
     __LKT_DB_UPDATING_PROGRESS = 1, /* Update in progress */
 };
 
-#define LKT_PLAY_STOP   ((void *)(size_t)__LKT_PLAY_STOP)
-#define LKT_PLAY_PLAY   ((void *)(size_t)__LKT_PLAY_PLAY)
-#define LKT_PLAY_PAUSE  ((void *)(size_t)__LKT_PLAY_PAUSE)
-#define LKT_PLAY_TOGGLE ((void *)(size_t)__LKT_PLAY_TOGGLE)
+#if defined(__cplusplus)
+#define CAST_LKT_EVENT(i) reinterpret_cast<void*>(static_cast<size_t>(i))
+#else
+#define CAST_LKT_EVENT(i) ((void*)(size_t)i)
+#endif
+#define LKT_PLAY_STOP   CAST_LKT_EVENT(__LKT_PLAY_STOP)
+#define LKT_PLAY_PLAY   CAST_LKT_EVENT(__LKT_PLAY_PLAY)
+#define LKT_PLAY_PAUSE  CAST_LKT_EVENT(__LKT_PLAY_PAUSE)
+#define LKT_PLAY_TOGGLE CAST_LKT_EVENT(__LKT_PLAY_TOGGLE)
 
-#define LKT_DB_UPDATING_PROGRESS ((void *)(size_t)__LKT_DB_UPDATING_PROGRESS)
-#define LKT_DB_UPDATING_FINISHED ((void *)(size_t)__LKT_DB_UPDATING_FINISHED)
+#define LKT_DB_UPDATING_PROGRESS CAST_LKT_EVENT(__LKT_DB_UPDATING_PROGRESS)
+#define LKT_DB_UPDATING_FINISHED CAST_LKT_EVENT(__LKT_DB_UPDATING_FINISHED)
 
 typedef enum {
     LKT_EVENT_NULL            = 0,         // NULL
diff --git a/src/module/qt_window/mpvwidget.cc b/src/module/qt_window/mpvwidget.cc
index 0cc422e9da790b1b138f7a301c57c7a8ed7731c9..35b65b5dacc23076d0c4ffbc6a5c450e80736dee 100644
--- a/src/module/qt_window/mpvwidget.cc
+++ b/src/module/qt_window/mpvwidget.cc
@@ -183,8 +183,8 @@ MpvWidget::handle_mpv_event(mpv_event *event)
     }
 
     case MPV_EVENT_IDLE:
-        lkt_queue_make_available(m_queue, (LKT_EVENT_TYPE)LKT_EVENT_PLAY);
-        lkt_queue_make_available(m_queue, (LKT_EVENT_TYPE)LKT_EVENT_PROP);
+        lkt_queue_make_available(m_queue, static_cast<LKT_EVENT_TYPE>(LKT_EVENT_PLAY));
+        lkt_queue_make_available(m_queue, static_cast<LKT_EVENT_TYPE>(LKT_EVENT_PROP));
         titleChanged("[Lektord] Stopped");
         break;
 
@@ -255,7 +255,7 @@ MpvWidget::get_duration(int UNUSED *dur_sec)
 bool
 MpvWidget::set_paussed(int paused)
 {
-    const char *cmd[] = {"set", "pause", paused == 1 ? "yes" : "no", NULL};
+    const char *cmd[] = {"set", "pause", paused == 1 ? "yes" : "no", nullptr};
     mpv_command_async(mpv, 0, cmd);
     return true;
 }
@@ -312,7 +312,7 @@ MpvWidget::update_window_title()
 bool
 MpvWidget::toggle_pause()
 {
-    const char *cmd[] = {"cycle", "pause", NULL};
+    const char *cmd[] = {"cycle", "pause", nullptr};
     mpv_command_async(mpv, 0, cmd);
     return true;
 }
@@ -346,10 +346,10 @@ MpvWidget::keyPressEvent(QKeyEvent* event)
             //lkt_queue_send(m_queue, LKT_EVENT_PLAY_TOGGLE, LKT_PLAY_TOGGLE);
             break;
         case Qt::Key_Enter:
-            lkt_queue_send(m_queue, LKT_EVENT_PLAY_NEXT, NULL);
+            lkt_queue_send(m_queue, LKT_EVENT_PLAY_NEXT, nullptr);
             break;
         case Qt::Key_Less:
-            lkt_queue_send(m_queue, LKT_EVENT_PLAY_PREV, NULL);
+            lkt_queue_send(m_queue, LKT_EVENT_PLAY_PREV, nullptr);
             break;
         case Qt::Key_Left:
             MPV_SEND_COMMAND_ASYNC("osd-msg-bar", "seek", "-5", "relative", NULL);