diff --git a/tools/windows/build_examples.bat b/tools/windows/build_examples.bat
index 3bbcccb06b8aa92cf54c0fe18547e06b2e461115..c431faebcd29d7b1a1aaeaa77558b948fc3454f0 100644
--- a/tools/windows/build_examples.bat
+++ b/tools/windows/build_examples.bat
@@ -12,9 +12,6 @@ REM Set up SRC, BUILD and CLFLAGS
 call %HEREPATH%\env.bat
 call %HEREPATH%\clvars.bat
 
-REM type conversion of a return value
-set CLFLAGS=%CLFLAGS% -wd4242
-
 echo SRC=%SRC%, BUILD=%BUILD%
 echo CLFLAGS=%CLFLAGS%
 
diff --git a/tools/windows/clvars.bat b/tools/windows/clvars.bat
index ba5490067b7842e3bf36071da3ec0a3096ed7a76..8e29226871988207083b61197b5efea11c1ebb69 100644
--- a/tools/windows/clvars.bat
+++ b/tools/windows/clvars.bat
@@ -4,11 +4,25 @@ REM Exports CLFLAGS
 REM Start with the most strict warning level
 set WARNINGS=-W4 -Wall -WX
 
+REM c4457 (declaration shadowing function parameter)
+REM FIXME(windows) TODO(uucidl): remove occurence of c4457 and reactivate
+REM FIXME(windows) TODO(uucidl): remove occurence of c4456 and reactivate
+REM see -Wshadow
+set WARNINGS=%WARNINGS% -wd4457 -wd4456
+
+REM c4701 (potentially unitialized local variable)
+REM FIXME(windows) TODO(uucidl): remove occurence of c4701 if possible
+set WARNINGS=%WARNINGS% -wd4701
+
 REM We disable implicit casting warnings (c4244), as they occur too often here.
 REM Its gcc/clang counterpart is Wconversion which does not seem to
 REM be enabled by default.
 REM See: [[https://gcc.gnu.org/wiki/NewWconversion#Frequently_Asked_Questions]]
-set WARNINGS=%WARNINGS% -wd4244
+REM
+REM Likewise for c4242 (conversion with potential loss of data) and c4267
+REM (conversion away from size_t to a smaller type) and c4245 (conversion
+REM from int to size_t signed/unsigned mismatch)
+set WARNINGS=%WARNINGS% -wd4242 -wd4244 -wd4245 -wd4267
 
 REM c4100 (unreferenced formal parameter) is equivalent to -Wno-unused-parameter
 set WARNINGS=%WARNINGS% -wd4100
@@ -19,11 +33,13 @@ set WARNINGS=%WARNINGS% -wd4200
 REM c4204 (non-constant aggregate initializers) ressembles C99 support
 set WARNINGS=%WARNINGS% -wd4204
 
-REM c4201 (anonymous unions) ressembles C11 support
+REM c4201 (anonymous unions) ressembles C11 support.
+REM see -std=gnu99 vs -std=c99
 set WARNINGS=%WARNINGS% -wd4201
 
-REM c4820 (warnings about padding) is not useful
-set WARNINGS=%WARNINGS% -wd4820
+REM c4820 (warnings about padding) and c4324 (intentional padding) are
+REM not useful
+set WARNINGS=%WARNINGS% -wd4820 -wd4324
 
 REM c4710 (inlining could not be performed) is not useful
 set WARNINGS=%WARNINGS% -wd4710
@@ -31,10 +47,13 @@ set WARNINGS=%WARNINGS% -wd4710
 REM c4255 ( () vs (void) ambiguity) is not useful
 set WARNINGS=%WARNINGS% -wd4255
 
-REM c4996 (deprecated functions)
-set WARNINGS=%WARNINGS% -wd4996
+REM c4127 (conditional expression is constant) is not useful
+set WARNINGS=%WARNINGS% -wd4127
+
+REM c4668 (an undefined symbol in a preprocessor directive) is not useful
+set WARNINGS=%WARNINGS% -wd4668
 
-REM we use sprintf
+REM we use sprintf so this should be enabled
 set DEFINES=-D_CRT_SECURE_NO_WARNINGS
 
 set CLFLAGS=-Od -Z7 %DEFINES% %WARNINGS% -Debug