Index: /trunk/Config.kmk
===================================================================
--- /trunk/Config.kmk	(revision 42585)
+++ /trunk/Config.kmk	(revision 42586)
@@ -3278,4 +3278,5 @@
 TEMPLATE_VBOXR3EXE_ASFLAGS.amd64       = $(VBOX_ASFLAGS64)
 TEMPLATE_VBOXR3EXE_DEFS                = IN_RING3 $(ARCH_BITS_DEFS)
+TEMPLATE_VBOXR3EXE_DEFS.win            = _CRT_SECURE_NO_DEPRECATE
 TEMPLATE_VBOXR3EXE_USES                = dtrace
 if defined(VBOX_WITH_DTRACE_R3) && defined(VBOX_WITH_NATIVE_DTRACE)
@@ -4395,7 +4396,6 @@
  TEMPLATE_VBOXBLDPROG_TOOL              := $(VBOX_VCC_TOOL_STEM)$(toupper $(KBUILD_HOST_ARCH))
  TEMPLATE_VBOXBLDPROG_SDKS              := ReorderCompilerIncs $(VBOX_WINPSDK)
- TEMPLATE_VBOXBLDPROG_CXXFLAGS          := -Zi -Zl -GR- -EHs- -GF -MT$(VBOX_VCC_CRT_TYPE) -W3 -wd4996 -Zc:wchar_t-
+ TEMPLATE_VBOXBLDPROG_CXXFLAGS          := -Zi -Zl -GR- -EHsc -GF -W3 -wd4065 -wd4244 -wd4996 -Zc:wchar_t- $(VBOX_VCC_OPT) $(VBOX_VCC_FP) -MT$(VBOX_VCC_CRT_TYPE)
  TEMPLATE_VBOXBLDPROG_CXXFLAGS.debug    := -RTCsu
- TEMPLATE_VBOXBLDPROG_CXXFLAGS.release  := -O2 -Oy-
  TEMPLATE_VBOXBLDPROG_CXXFLAGS.profile   = $(TEMPLATE_VBOXBLDPROG_CXXFLAGS.release)
  TEMPLATE_VBOXBLDPROG_CXXFLAGS.kprofile  = $(TEMPLATE_VBOXBLDPROG_CXXFLAGS.release)
@@ -4519,4 +4519,8 @@
 TEMPLATE_VBoxAdvBldProg_SDKS.win= $(TEMPLATE_VBOXBLDPROG_SDKS.win) VBOX_NTDLL
 TEMPLATE_VBoxAdvBldProg_DEFS    = $(TEMPLATE_VBOXBLDPROG_DEFS) IN_RT_R3
+ifeq ($(KBUILD_HOST),win)
+ TEMPLATE_VBoxAdvBldProg_CFLAGS = $(TEMPLATE_VBOXBLDPROG_CFLAGS) $(VBOX_VCC_WERR)
+ TEMPLATE_VBoxAdvBldProg_CXXFLAGS = $(TEMPLATE_VBOXBLDPROG_CXXFLAGS) $(VBOX_VCC_WERR)
+endif
 TEMPLATE_VBoxAdvBldProg_LIBS    = \
 	$(PATH_STAGE_LIB)/RuntimeBldProg$(VBOX_SUFF_LIB) \
@@ -4664,6 +4668,7 @@
 
 #
-# Template for building normal R3 (dynamic) libraries for the guest additions.
-#
+# Template for building normal R3 (dynamic) libraries for the guest additions, allows warnings.
+#
+## @todo rename to VBoxGuestR3DllWarn
 TEMPLATE_NewVBoxGuestR3Dll = VBox Guest User Dynamic Libraries w/ IPRT and VBGL.
 TEMPLATE_NewVBoxGuestR3Dll_EXTENDS  = VBOXGUESTR3DLL
@@ -4675,6 +4680,22 @@
 
 #
-# Template for building R3 (static) libraries for the guest additions.
-#
+# Template for building normal R3 (dynamic) libraries for the guest additions, strict.
+#
+TEMPLATE_VBoxGuestR3Dll = VBox Guest User Dynamic Libraries w/ IPRT and VBGL.
+TEMPLATE_VBoxGuestR3Dll_EXTENDS  = NewVBoxGuestR3Dll
+TEMPLATE_VBoxGuestR3Dll_EXTENDS_BY = appending
+ifeq ($(KBUILD_TARGET),win)
+ TEMPLATE_VBoxGuestR3Dll_CFLAGS      += $(VBOX_VCC_WERR)
+ TEMPLATE_VBoxGuestR3Dll_CXXFLAGS    += $(VBOX_VCC_WERR)
+ TEMPLATE_VBoxGuestR3Dll_LDFLAGS     += $(VBOX_VCC_LD_WERR)
+else
+ TEMPLATE_VBoxGuestR3Dll_CFLAGS      += $(VBOX_GCC_WERR)
+ TEMPLATE_VBoxGuestR3Dll_CXXFLAGS    += $(VBOX_GCC_WERR)
+endif
+
+#
+# Template for building R3 (static) libraries for the guest additions, allows warnings.
+#
+## @todo rename to VBoxGuestR3LibWarn.
 TEMPLATE_VBOXGUESTR3LIB           = VBox Guest User Libraries
 TEMPLATE_VBOXGUESTR3LIB_EXTENDS   = VBOXGUESTR3EXE
@@ -4684,4 +4705,19 @@
  TEMPLATE_VBOXGUESTR3LIB_CFLAGS   = $(TEMPLATE_VBOXGUESTR3EXE_CFLAGS) -fPIC
  TEMPLATE_VBOXGUESTR3LIB_CXXFLAGS = $(TEMPLATE_VBOXGUESTR3EXE_CXXFLAGS) -fPIC -fno-exceptions
+endif
+
+#
+# Template for building R3 (static) libraries for the guest additions, strict.
+#
+TEMPLATE_VBoxGuestR3Lib = VBox Guest User Dynamic Libraries w/ IPRT and VBGL.
+TEMPLATE_VBoxGuestR3Lib_EXTENDS  = VBOXGUESTR3LIB
+TEMPLATE_VBoxGuestR3Lib_EXTENDS_BY = appending
+ifeq ($(KBUILD_TARGET),win)
+ TEMPLATE_VBoxGuestR3Lib_CFLAGS      += $(VBOX_VCC_WERR)
+ TEMPLATE_VBoxGuestR3Lib_CXXFLAGS    += $(VBOX_VCC_WERR)
+ TEMPLATE_VBoxGuestR3Lib_LDFLAGS     += $(VBOX_VCC_LD_WERR)
+else
+ TEMPLATE_VBoxGuestR3Lib_CFLAGS      += $(VBOX_GCC_WERR)
+ TEMPLATE_VBoxGuestR3Lib_CXXFLAGS    += $(VBOX_GCC_WERR)
 endif
 
Index: /trunk/src/VBox/Runtime/Makefile.kmk
===================================================================
--- /trunk/src/VBox/Runtime/Makefile.kmk	(revision 42585)
+++ /trunk/src/VBox/Runtime/Makefile.kmk	(revision 42586)
@@ -1026,5 +1026,5 @@
 #       for build programs.
 #
-RuntimeBldProg_TEMPLATE         := VBOXBLDPROG
+RuntimeBldProg_TEMPLATE         := VBoxAdvBldProg
 RuntimeBldProg_EXTENDS          := RuntimeR3
 RuntimeBldProg_BLD_TRG          := $(KBUILD_HOST)
@@ -1038,5 +1038,5 @@
 # additions, while .x86 is for cross building x86 while targeting amd64.)
 #
-RuntimeGuestR3_TEMPLATE                 := VBOXGUESTR3LIB
+RuntimeGuestR3_TEMPLATE                 := VBoxGuestR3Lib
 ## @todo change this to EXTEND the RuntimeR3 target.
 RuntimeGuestR3_SDKS.win                 := $(RuntimeR3_SDKS.win)
@@ -1074,5 +1074,5 @@
 # RuntimeGuestR3-x86 - Same as RuntimeGuestR3, except that it's targeting x86.
 #
-RuntimeGuestR3-x86_EXTENDS           	:= RuntimeGuestR3
+RuntimeGuestR3-x86_EXTENDS              := RuntimeGuestR3
 RuntimeGuestR3-x86_BLD_TRG_ARCH         := x86
 
@@ -1081,5 +1081,5 @@
 # RuntimeGuestR3Shared - Guest Additions Runtime (static/dll).
 #
-RuntimeGuestR3Shared_TEMPLATE           := VBOXGUESTR3DLL
+RuntimeGuestR3Shared_TEMPLATE           := VBoxGuestR3Dll
 RuntimeGuestR3Shared_EXTENDS            := RuntimeGuestR3
 RuntimeGuestR3Shared_INST                = $(INST_ADDITIONS_LIB)
@@ -1089,6 +1089,6 @@
 # RuntimeGuestR3Shared-x86 - Same as RuntimeGuestR3Shared, except that it's targeting x86.
 #
-RuntimeGuestR3Shared-x86_EXTENDS           	:= RuntimeGuestR3Shared
-RuntimeGuestR3Shared-x86_BLD_TRG_ARCH         := x86
+RuntimeGuestR3Shared-x86_EXTENDS        := RuntimeGuestR3Shared
+RuntimeGuestR3Shared-x86_BLD_TRG_ARCH   := x86
 
 
@@ -1098,5 +1098,5 @@
 #                      for X11 drivers, GRADD and similar.
 #
-RuntimeGuestR3Mini_TEMPLATE                 := VBOXGUESTR3DLL
+RuntimeGuestR3Mini_TEMPLATE                 := VBoxGuestR3Dll
 ## @todo change this to EXTEND the RuntimeGuestR3 target.
 RuntimeGuestR3Mini_INST                     := $(INST_ADDITIONS_LIB)
