diff --git a/CMakeLists.txt b/CMakeLists.txt
index f31a4be3e58fef012af5980cb8d058a3197e8ed9..164234d710059aee8339a3883ea70591cb96341c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -85,7 +85,8 @@ set(Clang_C_FLAGS
     -Wno-missing-variable-declarations
     -Wno-unknown-warning-option
     -Wno-declaration-after-statement
-    -fcolor-diagnostics
+    -Wno-covered-switch-default # We migh want to have a default even if everything is covered
+    -fcolor-diagnostics         # Colors!
 )
 set(Clang_CXX_FLAGS
     $<$<COMPILE_LANGUAGE:CXX>:-Wno-c++98-compat-pedantic>
diff --git a/src/module/qt_window/qthelper.hh b/src/module/qt_window/qthelper.hh
index 9ed45600d98a84b12c015fd31a3b6466a16b87d8..9012c6e564268d088b423360493935886b8bf361 100644
--- a/src/module/qt_window/qthelper.hh
+++ b/src/module/qt_window/qthelper.hh
@@ -90,7 +90,7 @@ private:
     Q_DISABLE_COPY(node_builder)
     mpv_node node_;
 
-    mpv_node_list *create_list(mpv_node *dst, bool is_map, int num)
+    mpv_node_list *create_list(mpv_node *dst, bool is_map, qsizetype num)
     {
         dst->format         = is_map ? MPV_FORMAT_NODE_MAP : MPV_FORMAT_NODE_ARRAY;
         mpv_node_list *list = new mpv_node_list();
@@ -151,7 +151,10 @@ private:
             mpv_node_list *list = create_list(dst, false, qlist.size());
             if (!list)
                 goto fail;
-            list->num = qlist.size();
+            const qsizetype qlist_size = qlist.size();
+            if (qlist_size >= std::numeric_limits<int>::max())
+                goto fail;
+            list->num = static_cast<int>(qlist_size);
             for (int n = 0; n < qlist.size(); n++)
                 set(&list->values[n], qlist[n]);
         } else if (src.canConvert<QVariantMap>()) {
@@ -159,7 +162,10 @@ private:
             mpv_node_list *list = create_list(dst, true, qmap.size());
             if (!list)
                 goto fail;
-            list->num = qmap.size();
+            const qsizetype qmap_size = qmap.size();
+            if (qmap_size >= std::numeric_limits<int>::max())
+                goto fail;
+            list->num = static_cast<int>(qmap_size);
             for (int n = 0; n < qmap.size(); n++) {
                 list->keys[n] = dup_qstring(qmap.keys()[n]);
                 if (!list->keys[n]) {