Index: /trunk/Config.kmk
===================================================================
--- /trunk/Config.kmk	(revision 55788)
+++ /trunk/Config.kmk	(revision 55789)
@@ -2970,23 +2970,26 @@
 
 ##
-# Macro for setting DLL/SO/DYLIB version information and description.
-#
-# The macro must be invoked using evalcall2 after the whole target has
-# been declared.
+# Internal macro.
 #
 # @param 1     The target name.
 # @param 2     The description
 # @param 3     Optional icon file.
-# @param 4     Optional file name. Uses $1 + default suffix by default.
-define VBOX_SET_VER_INFO_DLL
+# @param 4     The template base name.
+# @param 5     Additional RC options.
+#
+# @remarks     ASSUMES RCFLAGS isn't a simple variable (var := value).
+define VBOX_SET_VER_INFO_INTERNAL
 ifeq ($(KBUILD_TARGET),win)
-$(1)_SOURCES.win += $(PATH_ROOT)/src/VBox/Resources/win/TemplateDll.rc
-$(1)_RCFLAGS += /nologo /dIN_FILE_BASENAME="\"$(1)\"" /dIN_FILE_DESCRIPTION="\"$(2)\"" \
-	$(if $(3), /dIN_ICON_FILE="\"$(subst \\,/,$(strip $(3)))\"") $(if $(4), /dIN_FILE_NAME="\"$(4)\"")
+$(1)_SOURCES.win += $(PATH_ROOT)/src/VBox/Resources/win/$(4)
+$(1)_RCFLAGS += /nologo /dIN_INTERNAL_NAME="\"$(1)\"" /dIN_FILE_DESCRIPTION="\"$(2)\"" \
+	/dIN_ORIGINAL_NAME="\"$$(notdir $$($(1)_1_INST_TARGET))\"" \
+	$(if $(3), /dIN_ICON_FILE="\"$(subst \\,/,$(strip $(3)))\"") $(5)
+$$$$($(1)_0_OUTDIR)/src/VBox/Resources/win/$(basename $(4)).res: \
+	$(PATH_ROOT)/include/VBox/version.h $$$$(VBOX_VERSION_HEADER)
 endif
 endef
 
 ##
-# Macro for setting EXE version information and description.
+# Macro for setting DLL/SO/DYLIB version information and description.
 #
 # The macro must be invoked using evalcall2 after the whole target has
@@ -2996,68 +2999,46 @@
 # @param 2     The description
 # @param 3     Optional icon file.
-# @param 4     Optional file name. Uses $1 + default suffix by default.
-define VBOX_SET_VER_INFO_EXE
-ifeq ($(KBUILD_TARGET),win)
-$(1)_SOURCES.win += $(PATH_ROOT)/src/VBox/Resources/win/TemplateExe.rc
-$(1)_RCFLAGS += /nologo /dIN_FILE_BASENAME="\"$(1)\"" /dIN_FILE_DESCRIPTION="\"$(2)\"" \
-	$(if $(3), /dIN_ICON_FILE="\"$(subst \\,/,$(strip $(3)))\"") $(if $(4), /dIN_FILE_NAME="\"$(4)\"")
-endif
-endef
+VBOX_SET_VER_INFO_DLL = $(evalcall2 VBOX_SET_VER_INFO_INTERNAL,$1,$2,$3,TemplateDll.rc,)
 
 ##
-# Macro for setting driver version information and description.
-#
-# The macro must be invoked using evalcall2 after the whole target has
-# been declared.
+# Macro for setting EXE version information and description.
+#
+# The macro must be invoked using call after the whole target has been declared.
 #
 # @param 1     The target name.
 # @param 2     The description
 # @param 3     Optional icon file.
-# @param 4     Optional file name. Uses $1 + default suffix by default.
-# @param 5     Optional VFT2_DRV_xxx define for windows.  Uses VFT2_UNKNOWN by default.
-define VBOX_SET_VER_INFO_DRV
-ifeq ($(KBUILD_TARGET),win)
-$(1)_SOURCES.win += $(PATH_ROOT)/src/VBox/Resources/win/TemplateDrv.rc
-$(1)_RCFLAGS += /nologo /dIN_FILE_BASENAME="\"$(1)\"" /dIN_FILE_DESCRIPTION="\"$(2)\"" \
-	$(if $(3), /dIN_ICON_FILE="\"$(subst \\,/,$(strip $(3)))\"") $(if $(4), /dIN_FILE_NAME="\"$(4)\"")
-	$(if $(5), /dIN_FILE_SUBTYPE=$(5))
-endif
-endef
+VBOX_SET_VER_INFO_EXE = $(evalcall2 VBOX_SET_VER_INFO_INTERNAL,$1,$2,$3,TemplateExe.rc,)
 
 ##
-# Macro for setting the version information and description for a ring-0 module.
-#
-# The macro must be invoked using evalcall2 after the whole target has
-# been declared.
+# Macro for setting driver version information and description.
+#
+# The macro must be invoked using call after the whole target has been declared.
 #
 # @param 1     The target name.
 # @param 2     The description
 # @param 3     Optional icon file.
-# @param 4     Optional file name. Uses $1 + default suffix by default.
-define VBOX_SET_VER_INFO_R0
-ifeq ($(KBUILD_TARGET),win)
-$(1)_SOURCES.win += $(PATH_ROOT)/src/VBox/Resources/win/TemplateR0.rc
-$(1)_RCFLAGS += /nologo /dIN_FILE_BASENAME="\"$(1)\"" /dIN_FILE_DESCRIPTION="\"$(2)\"" \
-	$(if $(3), /dIN_ICON_FILE="\"$(subst \\,/,$(strip $(3)))\"") $(if $(4), /dIN_FILE_NAME="\"$(4)\"")
-endif
-endef
+# @param 4     Optional VFT2_DRV_xxx define for windows.  Uses VFT2_UNKNOWN by default.
+VBOX_SET_VER_INFO_DRV = $(evalcall2 VBOX_SET_VER_INFO_INTERNAL,$1,$2,$3,TemplateDrv.rc,$(if $(4), /dIN_FILE_SUBTYPE=$(4)))
 
 ##
-# Macro for setting the version information and description for a raw-mode context module.
-#
-# The macro must be invoked using evalcall2 after the whole target has
-# been declared.
+# Macro for setting the version information and description for a ring-0 module.
+#
+# The macro must be invoked using call after the whole target has been declared.
 #
 # @param 1     The target name.
 # @param 2     The description
 # @param 3     Optional icon file.
-# @param 4     Optional file name. Uses $1 + default suffix by default.
-define VBOX_SET_VER_INFO_RC
-ifeq ($(KBUILD_TARGET),win)
-$(1)_SOURCES.win += $(PATH_ROOT)/src/VBox/Resources/win/TemplateR0.rc
-$(1)_RCFLAGS += /nologo /dIN_FILE_BASENAME="\"$(1)\"" /dIN_FILE_DESCRIPTION="\"$(2)\"" \
-	$(if $(3), /dIN_ICON_FILE="\"$(subst \\,/,$(strip $(3)))\"") $(if $(4), /dIN_FILE_NAME="\"$(4)\"")
-endif
-endef
+VBOX_SET_VER_INFO_R0 = $(evalcall2 VBOX_SET_VER_INFO_INTERNAL,$1,$2,$3,TemplateR0.rc,)
+
+##
+# Macro for setting the version information and description for a raw-mode context module.
+#
+# The macro must be invoked using call after the whole target has been declared.
+#
+# @param 1     The target name.
+# @param 2     The description
+# @param 3     Optional icon file.
+VBOX_SET_VER_INFO_RC = $(evalcall2 VBOX_SET_VER_INFO_INTERNAL,$1,$2,$3,TemplateRc.rc,)
 
 
@@ -4991,12 +4972,15 @@
   TEMPLATE_VBoxR3ExtPackPuel_EXTENDS = VBoxR3ExtPack
   TEMPLATE_VBoxR3ExtPackPuel_INST = $(INST_EXTPACK_PUEL)$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)/
+  TEMPLATE_VBoxR3ExtPackPuel_DEFS = $(TEMPLATE_VBoxR3ExtPack_DEFS) VBOX_IN_PUEL_EXTPACK
 
   TEMPLATE_VBoxR0ExtPackPuel = For the ring-0 context modules in the PUEL extension pack.
   TEMPLATE_VBoxR0ExtPackPuel_EXTENDS = VBoxR0ExtPack
   TEMPLATE_VBoxR0ExtPackPuel_INST = $(INST_EXTPACK_PUEL)$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)/
+  TEMPLATE_VBoxR0ExtPackPuel_DEFS = $(TEMPLATE_VBoxR0ExtPack_DEFS) VBOX_IN_PUEL_EXTPACK
 
   TEMPLATE_VBoxRcExtPackPuel = For the raw-mode context modules in the PUEL extension pack.
   TEMPLATE_VBoxRcExtPackPuel_EXTENDS = VBoxRcExtPack
   TEMPLATE_VBoxRcExtPackPuel_INST = $(INST_EXTPACK_PUEL)$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)/
+  TEMPLATE_VBoxRcExtPackPuel_DEFS = $(TEMPLATE_VBoxRcExtPack_DEFS) VBOX_IN_PUEL_EXTPACK
 
   TEMPLATE_VBoxInsExtPackPuel = For the install targets of an extension pack.
Index: /trunk/include/VBox/version.h
===================================================================
--- /trunk/include/VBox/version.h	(revision 55788)
+++ /trunk/include/VBox/version.h	(revision 55789)
@@ -100,6 +100,10 @@
 #define VBOX_RC_COMPANY_NAME            VBOX_VENDOR
 #define VBOX_RC_LEGAL_COPYRIGHT         "Copyright (C) 2009-" VBOX_C_YEAR " Oracle Corporation\0"
-#define VBOX_RC_PRODUCT_NAME_STR        VBOX_PRODUCT "\0"
-#define VBOX_RC_PRODUCT_NAME_GA_STR     VBOX_PRODUCT " Guest Additions\0"
+#define VBOX_RC_PRODUCT_NAME                    VBOX_PRODUCT
+#define VBOX_RC_PRODUCT_NAME_GA                 VBOX_PRODUCT " Guest Additions"
+#define VBOX_RC_PRODUCT_NAME_PUEL_EXTPACK       VBOX_PRODUCT " Extension Pack"
+#define VBOX_RC_PRODUCT_NAME_STR                VBOX_RC_PRODUCT_NAME "\0"
+#define VBOX_RC_PRODUCT_NAME_GA_STR             VBOX_RC_PRODUCT_NAME_GA "\0"
+#define VBOX_RC_PRODUCT_NAME_PUEL_EXTPACK_STR   VBOX_RC_PRODUCT_NAME_PUEL_EXTPACK "\0"
 #define VBOX_RC_PRODUCT_VERSION         VBOX_VERSION_MAJOR , VBOX_VERSION_MINOR , VBOX_VERSION_BUILD , VBOX_SVN_REV_MOD_5K
 #define VBOX_RC_FILE_VERSION            VBOX_VERSION_MAJOR , VBOX_VERSION_MINOR , VBOX_VERSION_BUILD , VBOX_SVN_REV_MOD_5K
@@ -116,5 +120,5 @@
 #define VBOX_RC_TYPE_DRV                VFT_DRV
 /* Flags and extra strings depending on the build type and who's building. */
-#if defined(DEBUG) || defined(VBOX_WITH_STATISTICS) || defined(LOG_ENABLED)
+#if defined(DEBUG) || defined(LOG_ENABLED) || defined(RT_STRICT) || defined(VBOX_STRICT) || defined(VBOX_WITH_STATISTICS)
 # define VBOX_RC_FILE_FLAGS_DEBUG       VS_FF_DEBUG
 #else
Index: /trunk/src/VBox/Frontends/VBoxSDL/Makefile.kmk
===================================================================
--- /trunk/src/VBox/Frontends/VBoxSDL/Makefile.kmk	(revision 55788)
+++ /trunk/src/VBox/Frontends/VBoxSDL/Makefile.kmk	(revision 55789)
@@ -20,24 +20,15 @@
 if !defined(VBOX_WITH_HARDENING) || "$(KBUILD_TARGET)" != "darwin" # No hardened VBoxSDL on darwin.
 
-#
-# Targets.
-#
+
 ifdef VBOX_WITH_HARDENING
+ #
+ # Hardened VBoxSDL
+ #
  PROGRAMS += VBoxSDLHardened
- DLLS += VBoxSDL
-else
- PROGRAMS += VBoxSDL
+ VBoxSDLHardened_TEMPLATE = VBOXR3HARDENEDEXE
+ VBoxSDLHardened_SOURCES = VBoxSDLHardened.cpp
+ VBoxSDLHardened_NAME = VBoxSDL
+ $(call VBOX_SET_VER_INFO_EXE,VBoxSDLHardened,VirtualBox Pure SDL Frontend,$(VBOX_WINDOWS_ICON_FILE)) # Version info / description.
 endif
-PROGRAMS += tstSDL
-
-
-#
-# Hardened VBoxSDL
-#
-VBoxSDLHardened_TEMPLATE = VBOXR3HARDENEDEXE
-VBoxSDLHardened_SOURCES = VBoxSDLHardened.cpp
-VBoxSDLHardened_SOURCES.win = $(VBoxSDL_0_OUTDIR)/VBoxSDL-icon.rc
-VBoxSDLHardened_NAME = VBoxSDL
-$(evalcall2 VBOX_SET_VER_INFO_EXE,VBoxSDLHardened,VirtualBox Pure SDL Frontend,$(VBOX_WINDOWS_ICON_FILE)) # Version info / description.
 
 
@@ -45,4 +36,9 @@
 # VBoxSDL
 #
+ifdef VBOX_WITH_HARDENING
+ DLLS += VBoxSDL
+else
+ PROGRAMS += VBoxSDL
+endif
 VBoxSDL_TEMPLATE  := $(if $(VBOX_WITH_HARDENING),VBOXMAINCLIENTDLL,VBOXMAINCLIENTEXE)
 VBoxSDL_SDKS       = LIBSDL
@@ -107,7 +103,7 @@
 
 ifdef VBOX_WITH_HARDENING
-$(evalcall2 VBOX_SET_VER_INFO_DLL,VBoxSDL,VirtualBox Pure SDL Frontend,$(VBOX_WINDOWS_ICON_FILE)) # Version info / description.
+$(call VBOX_SET_VER_INFO_DLL,VBoxSDL,VirtualBox Pure SDL Frontend,$(VBOX_WINDOWS_ICON_FILE)) # Version info / description.
 else
-$(evalcall2 VBOX_SET_VER_INFO_EXE,VBoxSDL,VirtualBox Pure SDL Frontend,$(VBOX_WINDOWS_ICON_FILE)) # Version info / description.
+$(call VBOX_SET_VER_INFO_EXE,VBoxSDL,VirtualBox Pure SDL Frontend,$(VBOX_WINDOWS_ICON_FILE)) # Version info / description.
 endif
 
@@ -116,4 +112,5 @@
 # tstSDL
 #
+PROGRAMS += tstSDL
 tstSDL_TEMPLATE = VBOXR3NPEXE
 tstSDL_SDKS = LIBSDL
Index: /trunk/src/VBox/Resources/win/TemplateDll.rc
===================================================================
--- /trunk/src/VBox/Resources/win/TemplateDll.rc	(revision 55788)
+++ /trunk/src/VBox/Resources/win/TemplateDll.rc	(revision 55789)
@@ -30,12 +30,39 @@
 *******************************************************************************/
 /* Validate input and deal with optional input. */
+/** @def IN_FILE_DESCRIPTION
+ * The file description string.
+ */
 #ifndef IN_FILE_DESCRIPTION
 # error "Must define the IN_FILE_DESCRIPTION string!"
 #endif
-#ifndef IN_FILE_BASENAME
-# error "Must define the IN_FILE_BASENAME string!"
+/** @def IN_INTERNAL_NAME
+ * The internal name string, optional (requires IN_FILE_BASENAME then).
+ */
+#ifndef IN_INTERNAL_NAME
+# ifndef IN_FILE_BASENAME
+#  error "Must define the IN_FILE_BASENAME or the IN_INTERNAL_NAME string!"
+# endif
+# define IN_INTERNAL_NAME IN_FILE_BASENAME
 #endif
-#ifndef IN_FILE_NAME /* optional */
-# define IN_FILE_NAME IN_FILE_BASENAME ".dll"
+/** @def IN_ORIGINAL_NAME
+ * The original name string, optional (requires IN_FILE_BASENAME then).
+ */
+#ifndef IN_ORIGINAL_NAME
+# ifndef IN_FILE_BASENAME
+#  error "Must define the IN_FILE_BASENAME or the IN_ORIGINAL_NAME string!"
+# endif
+# define IN_ORIGINAL_NAME IN_FILE_BASENAME " .dll"
+#endif
+/** @def IN_PRODUCT_NAME
+ * The product name string, optional.
+ */
+#ifndef IN_PRODUCT_NAME
+# ifdef IN_GUEST
+#  define IN_PRODUCT_NAME VBOX_RC_PRODUCT_NAME_GA
+# elif defined(VBOX_IN_PUEL_EXTPACK)
+#  define IN_PRODUCT_NAME VBOX_RC_PRODUCT_NAME_PUEL_EXTPACK
+# else
+#  define IN_PRODUCT_NAME VBOX_RC_PRODUCT_NAME
+# endif
 #endif
 
@@ -67,15 +94,11 @@
         BLOCK "040904b0" /* Lang=US English, CodePage=utf-16 */
         BEGIN
-            VALUE "FileDescription",  IN_FILE_DESCRIPTION
-            VALUE "InternalName",     IN_FILE_BASENAME "\0"
-            VALUE "OriginalFilename", IN_FILE_NAME "\0"
-            VALUE "CompanyName",      VBOX_RC_COMPANY_NAME
+            VALUE "FileDescription",  IN_FILE_DESCRIPTION "\0"
+            VALUE "InternalName",     IN_INTERNAL_NAME "\0"
+            VALUE "OriginalFilename", IN_ORIGINAL_NAME "\0"
+            VALUE "CompanyName",      VBOX_RC_COMPANY_NAME "\0"
             VALUE "FileVersion",      VBOX_RC_FILE_VERSION_STR
             VALUE "LegalCopyright",   VBOX_RC_LEGAL_COPYRIGHT
-#ifndef IN_GUEST
-            VALUE "ProductName",      VBOX_RC_PRODUCT_NAME_STR
-#else
-            VALUE "ProductName",      VBOX_RC_PRODUCT_NAME_GA_STR
-#endif
+            VALUE "ProductName",      IN_PRODUCT_NAME
             VALUE "ProductVersion",   VBOX_RC_PRODUCT_VERSION_STR
             VBOX_RC_MORE_STRINGS
Index: /trunk/src/VBox/Resources/win/TemplateDrv.rc
===================================================================
--- /trunk/src/VBox/Resources/win/TemplateDrv.rc	(revision 55788)
+++ /trunk/src/VBox/Resources/win/TemplateDrv.rc	(revision 55789)
@@ -30,12 +30,39 @@
 *******************************************************************************/
 /* Validate input and deal with optional input. */
+/** @def IN_FILE_DESCRIPTION
+ * The file description string.
+ */
 #ifndef IN_FILE_DESCRIPTION
 # error "Must define the IN_FILE_DESCRIPTION string!"
 #endif
-#ifndef IN_FILE_BASENAME
-# error "Must define the IN_FILE_BASENAME string!"
+/** @def IN_INTERNAL_NAME
+ * The internal name string, optional (requires IN_FILE_BASENAME then).
+ */
+#ifndef IN_INTERNAL_NAME
+# ifndef IN_FILE_BASENAME
+#  error "Must define the IN_FILE_BASENAME or the IN_INTERNAL_NAME string!"
+# endif
+# define IN_INTERNAL_NAME IN_FILE_BASENAME
 #endif
-#ifndef IN_FILE_NAME /* optional */
-# define IN_FILE_NAME IN_FILE_BASENAME ".sys"
+/** @def IN_ORIGINAL_NAME
+ * The original name string, optional (requires IN_FILE_BASENAME then).
+ */
+#ifndef IN_ORIGINAL_NAME
+# ifndef IN_FILE_BASENAME
+#  error "Must define the IN_FILE_BASENAME or the IN_ORIGINAL_NAME string!"
+# endif
+# define IN_ORIGINAL_NAME IN_FILE_BASENAME " .dll"
+#endif
+/** @def IN_PRODUCT_NAME
+ * The product name string, optional.
+ */
+#ifndef IN_PRODUCT_NAME
+# ifdef IN_GUEST
+#  define IN_PRODUCT_NAME VBOX_RC_PRODUCT_NAME_GA
+# elif defined(VBOX_IN_PUEL_EXTPACK)
+#  define IN_PRODUCT_NAME VBOX_RC_PRODUCT_NAME_PUEL_EXTPACK
+# else
+#  define IN_PRODUCT_NAME VBOX_RC_PRODUCT_NAME
+# endif
 #endif
 #ifndef IN_FILE_SUBTYPE /* optional */
@@ -70,15 +97,11 @@
         BLOCK "040904b0" /* Lang=US English, CodePage=utf-16 */
         BEGIN
-            VALUE "FileDescription",  IN_FILE_DESCRIPTION
-            VALUE "InternalName",     IN_FILE_BASENAME "\0"
-            VALUE "OriginalFilename", IN_FILE_NAME "\0"
-            VALUE "CompanyName",      VBOX_RC_COMPANY_NAME
+            VALUE "FileDescription",  IN_FILE_DESCRIPTION "\0"
+            VALUE "InternalName",     IN_INTERNAL_NAME "\0"
+            VALUE "OriginalFilename", IN_ORIGINAL_NAME "\0"
+            VALUE "CompanyName",      VBOX_RC_COMPANY_NAME "\0"
             VALUE "FileVersion",      VBOX_RC_FILE_VERSION_STR
             VALUE "LegalCopyright",   VBOX_RC_LEGAL_COPYRIGHT
-#ifndef IN_GUEST
-            VALUE "ProductName",      VBOX_RC_PRODUCT_NAME_STR
-#else
-            VALUE "ProductName",      VBOX_RC_PRODUCT_NAME_GA_STR
-#endif
+            VALUE "ProductName",      IN_PRODUCT_NAME
             VALUE "ProductVersion",   VBOX_RC_PRODUCT_VERSION_STR
             VBOX_RC_MORE_STRINGS
Index: /trunk/src/VBox/Resources/win/TemplateExe.rc
===================================================================
--- /trunk/src/VBox/Resources/win/TemplateExe.rc	(revision 55788)
+++ /trunk/src/VBox/Resources/win/TemplateExe.rc	(revision 55789)
@@ -30,12 +30,39 @@
 *******************************************************************************/
 /* Validate input and deal with optional input. */
+/** @def IN_FILE_DESCRIPTION
+ * The file description string.
+ */
 #ifndef IN_FILE_DESCRIPTION
 # error "Must define the IN_FILE_DESCRIPTION string!"
 #endif
-#ifndef IN_FILE_BASENAME
-# error "Must define the IN_FILE_BASENAME string!"
+/** @def IN_INTERNAL_NAME
+ * The internal name string, optional (requires IN_FILE_BASENAME then).
+ */
+#ifndef IN_INTERNAL_NAME
+# ifndef IN_FILE_BASENAME
+#  error "Must define the IN_FILE_BASENAME or the IN_INTERNAL_NAME string!"
+# endif
+# define IN_INTERNAL_NAME IN_FILE_BASENAME
 #endif
-#ifndef IN_FILE_NAME /* optional */
-# define IN_FILE_NAME IN_FILE_BASENAME ".exe"
+/** @def IN_ORIGINAL_NAME
+ * The original name string, optional (requires IN_FILE_BASENAME then).
+ */
+#ifndef IN_ORIGINAL_NAME
+# ifndef IN_FILE_BASENAME
+#  error "Must define the IN_FILE_BASENAME or the IN_ORIGINAL_NAME string!"
+# endif
+# define IN_ORIGINAL_NAME IN_FILE_BASENAME " .dll"
+#endif
+/** @def IN_PRODUCT_NAME
+ * The product name string, optional.
+ */
+#ifndef IN_PRODUCT_NAME
+# ifdef IN_GUEST
+#  define IN_PRODUCT_NAME VBOX_RC_PRODUCT_NAME_GA
+# elif defined(VBOX_IN_PUEL_EXTPACK)
+#  define IN_PRODUCT_NAME VBOX_RC_PRODUCT_NAME_PUEL_EXTPACK
+# else
+#  define IN_PRODUCT_NAME VBOX_RC_PRODUCT_NAME
+# endif
 #endif
 
@@ -67,15 +94,11 @@
         BLOCK "040904b0" /* Lang=US English, CodePage=utf-16 */
         BEGIN
-            VALUE "FileDescription",  IN_FILE_DESCRIPTION
-            VALUE "InternalName",     IN_FILE_BASENAME "\0"
-            VALUE "OriginalFilename", IN_FILE_NAME "\0"
-            VALUE "CompanyName",      VBOX_RC_COMPANY_NAME
+            VALUE "FileDescription",  IN_FILE_DESCRIPTION "\0"
+            VALUE "InternalName",     IN_INTERNAL_NAME "\0"
+            VALUE "OriginalFilename", IN_ORIGINAL_NAME "\0"
+            VALUE "CompanyName",      VBOX_RC_COMPANY_NAME "\0"
             VALUE "FileVersion",      VBOX_RC_FILE_VERSION_STR
             VALUE "LegalCopyright",   VBOX_RC_LEGAL_COPYRIGHT
-#ifndef IN_GUEST
-            VALUE "ProductName",      VBOX_RC_PRODUCT_NAME_STR
-#else
-            VALUE "ProductName",      VBOX_RC_PRODUCT_NAME_GA_STR
-#endif
+            VALUE "ProductName",      IN_PRODUCT_NAME
             VALUE "ProductVersion",   VBOX_RC_PRODUCT_VERSION_STR
             VBOX_RC_MORE_STRINGS
Index: /trunk/src/VBox/Resources/win/TemplateR0.rc
===================================================================
--- /trunk/src/VBox/Resources/win/TemplateR0.rc	(revision 55788)
+++ /trunk/src/VBox/Resources/win/TemplateR0.rc	(revision 55789)
@@ -30,12 +30,37 @@
 *******************************************************************************/
 /* Validate input and deal with optional input. */
+/** @def IN_FILE_DESCRIPTION
+ * The file description string.
+ */
 #ifndef IN_FILE_DESCRIPTION
 # error "Must define the IN_FILE_DESCRIPTION string!"
 #endif
-#ifndef IN_FILE_BASENAME
-# error "Must define the IN_FILE_BASENAME string!"
+/** @def IN_INTERNAL_NAME
+ * The internal name string, optional (requires IN_FILE_BASENAME then).
+ */
+#ifndef IN_INTERNAL_NAME
+# ifndef IN_FILE_BASENAME
+#  error "Must define the IN_FILE_BASENAME or the IN_INTERNAL_NAME string!"
+# endif
+# define IN_INTERNAL_NAME IN_FILE_BASENAME
 #endif
-#ifndef IN_FILE_NAME /* optional */
-# define IN_FILE_NAME IN_FILE_BASENAME ".r0"
+/** @def IN_ORIGINAL_NAME
+ * The original name string, optional (requires IN_FILE_BASENAME then).
+ */
+#ifndef IN_ORIGINAL_NAME
+# ifndef IN_FILE_BASENAME
+#  error "Must define the IN_FILE_BASENAME or the IN_ORIGINAL_NAME string!"
+# endif
+# define IN_ORIGINAL_NAME IN_FILE_BASENAME " .dll"
+#endif
+/** @def IN_PRODUCT_NAME
+ * The product name string, optional.
+ */
+#ifndef IN_PRODUCT_NAME
+# ifdef VBOX_IN_PUEL_EXTPACK
+#  define IN_PRODUCT_NAME VBOX_RC_PRODUCT_NAME_PUEL_EXTPACK
+# else
+#  define IN_PRODUCT_NAME VBOX_RC_PRODUCT_NAME
+# endif
 #endif
 #ifdef IN_GUEST
@@ -70,11 +95,11 @@
         BLOCK "040904b0" /* Lang=US English, CodePage=utf-16 */
         BEGIN
-            VALUE "FileDescription",  IN_FILE_DESCRIPTION
-            VALUE "InternalName",     IN_FILE_BASENAME "\0"
-            VALUE "OriginalFilename", IN_FILE_NAME "\0"
-            VALUE "CompanyName",      VBOX_RC_COMPANY_NAME
+            VALUE "FileDescription",  IN_FILE_DESCRIPTION "\0"
+            VALUE "InternalName",     IN_INTERNAL_NAME "\0"
+            VALUE "OriginalFilename", IN_ORIGINAL_NAME "\0"
+            VALUE "CompanyName",      VBOX_RC_COMPANY_NAME "\0"
             VALUE "FileVersion",      VBOX_RC_FILE_VERSION_STR
             VALUE "LegalCopyright",   VBOX_RC_LEGAL_COPYRIGHT
-            VALUE "ProductName",      VBOX_RC_PRODUCT_NAME_STR
+            VALUE "ProductName",      IN_PRODUCT_NAME
             VALUE "ProductVersion",   VBOX_RC_PRODUCT_VERSION_STR
             VBOX_RC_MORE_STRINGS
Index: /trunk/src/VBox/Resources/win/TemplateRC.rc
===================================================================
--- /trunk/src/VBox/Resources/win/TemplateRC.rc	(revision 55788)
+++ /trunk/src/VBox/Resources/win/TemplateRC.rc	(revision 55789)
@@ -30,12 +30,37 @@
 *******************************************************************************/
 /* Validate input and deal with optional input. */
+/** @def IN_FILE_DESCRIPTION
+ * The file description string.
+ */
 #ifndef IN_FILE_DESCRIPTION
 # error "Must define the IN_FILE_DESCRIPTION string!"
 #endif
-#ifndef IN_FILE_BASENAME
-# error "Must define the IN_FILE_BASENAME string!"
+/** @def IN_INTERNAL_NAME
+ * The internal name string, optional (requires IN_FILE_BASENAME then).
+ */
+#ifndef IN_INTERNAL_NAME
+# ifndef IN_FILE_BASENAME
+#  error "Must define the IN_FILE_BASENAME or the IN_INTERNAL_NAME string!"
+# endif
+# define IN_INTERNAL_NAME IN_FILE_BASENAME
 #endif
-#ifndef IN_FILE_NAME /* optional */
-# define IN_FILE_NAME IN_FILE_BASENAME ".rc"
+/** @def IN_ORIGINAL_NAME
+ * The original name string, optional (requires IN_FILE_BASENAME then).
+ */
+#ifndef IN_ORIGINAL_NAME
+# ifndef IN_FILE_BASENAME
+#  error "Must define the IN_FILE_BASENAME or the IN_ORIGINAL_NAME string!"
+# endif
+# define IN_ORIGINAL_NAME IN_FILE_BASENAME " .dll"
+#endif
+/** @def IN_PRODUCT_NAME
+ * The product name string, optional.
+ */
+#ifndef IN_PRODUCT_NAME
+# ifdef VBOX_IN_PUEL_EXTPACK
+#  define IN_PRODUCT_NAME VBOX_RC_PRODUCT_NAME_PUEL_EXTPACK
+# else
+#  define IN_PRODUCT_NAME VBOX_RC_PRODUCT_NAME
+# endif
 #endif
 #ifdef IN_GUEST
@@ -70,11 +95,11 @@
         BLOCK "040904b0" /* Lang=US English, CodePage=utf-16 */
         BEGIN
-            VALUE "FileDescription",  IN_FILE_DESCRIPTION
-            VALUE "InternalName",     IN_FILE_BASENAME "\0"
-            VALUE "OriginalFilename", IN_FILE_NAME "\0"
-            VALUE "CompanyName",      VBOX_RC_COMPANY_NAME
+            VALUE "FileDescription",  IN_FILE_DESCRIPTION "\0"
+            VALUE "InternalName",     IN_INTERNAL_NAME "\0"
+            VALUE "OriginalFilename", IN_ORIGINAL_NAME "\0"
+            VALUE "CompanyName",      VBOX_RC_COMPANY_NAME "\0"
             VALUE "FileVersion",      VBOX_RC_FILE_VERSION_STR
             VALUE "LegalCopyright",   VBOX_RC_LEGAL_COPYRIGHT
-            VALUE "ProductName",      VBOX_RC_PRODUCT_NAME_STR
+            VALUE "ProductName",      IN_PRODUCT_NAME
             VALUE "ProductVersion",   VBOX_RC_PRODUCT_VERSION_STR
             VBOX_RC_MORE_STRINGS
Index: /trunk/src/VBox/VMM/Makefile.kmk
===================================================================
--- /trunk/src/VBox/VMM/Makefile.kmk	(revision 55788)
+++ /trunk/src/VBox/VMM/Makefile.kmk	(revision 55789)
@@ -310,5 +310,5 @@
 #endif
 
-$(evalcall2 VBOX_SET_VER_INFO_DLL,VBoxVMM,VirtualBox VMM) # Version info / description.
+$(call VBOX_SET_VER_INFO_DLL,VBoxVMM,VirtualBox VMM) # Version info / description.
 
 
@@ -519,5 +519,5 @@
  VMMRC/VMMRCDeps.cpp_CXXFLAGS.win = -Oi- -TC ## @todo rename VMMRCDeps.cpp to .c
 
- $(evalcall2 VBOX_SET_VER_INFO_RC,VMMRC,VirtualBox VMM - raw-mode context parts) # Version info / description.
+ $(call VBOX_SET_VER_INFO_RC,VMMRC,VirtualBox VMM - raw-mode context parts) # Version info / description.
 endif # VBOX_WITH_RAW_MODE && !VBOX_ONLY_EXTPACKS
 
@@ -644,5 +644,5 @@
  endif
 
- $(evalcall2 VBOX_SET_VER_INFO_R0,VMMR0,VirtualBox VMM - ring-0 context parts) # Version info / description.
+ $(call VBOX_SET_VER_INFO_R0,VMMR0,VirtualBox VMM - ring-0 context parts) # Version info / description.
 endif # !VBOX_ONLY_EXTPACKS
 
