diff --git a/etc/config/windows/configure.wsf b/etc/config/windows/configure.wsf
index 0409928..6d091fc 100644
--- a/etc/config/windows/configure.wsf
+++ b/etc/config/windows/configure.wsf
@@ -1015,7 +1015,7 @@
 
     command += joinArray(srcs.split(" "), "");
 
-    command += " " + LIBS + " /Fe\"" + stageDir + "\\" + outName + "\"" +
+    command += " /Fe\"" + stageDir + "\\" + outName + "\"" +
                " /link " + LDFLAGS;
 
     var message = "Linking with command \"" + command + "\"";
@@ -1042,7 +1042,7 @@
         var dllname = "\"" + stageDir + "\\" + basename(outFile, "\\.lib") + ".dll\"";
         var command = LD + " ";
         command += joinArray(objNames.split(" "), "");
-        command += " " + LIBS + " /Fe" + dllname + " /link /DLL " + LDFLAGS +
+        command += " /Fe" + dllname + " /link /DLL " + LDFLAGS +
                    " /IMPLIB:" + libname;
         var message = "Making library with command \"" + command + "\"";
         logLine(message);
diff --git a/include/loc/_ctype.h b/include/loc/_ctype.h
index df1bcdf..44245b4 100644
--- a/include/loc/_ctype.h
+++ b/include/loc/_ctype.h
@@ -541,20 +541,21 @@
 inline char
 ctype<wchar_t>::narrow (char_type __c, char __dfault) const
 {
-    const _RWSTD_SIZE_T __inx = _RWSTD_STATIC_CAST (_RWSTD_UWCHAR_INT_T, __c);
-
     // optimize away all but the first call to the virtual do_widen()
-    if (   __inx < sizeof _C_narrow_tab / sizeof *_C_narrow_tab
-        && _C_narrow_tab [__inx])
-        return _C_narrow_tab [__inx];
+    if (   0 <= __c
+        && __c < sizeof _C_narrow_tab / sizeof *_C_narrow_tab
+        && _C_narrow_tab [__c])
+        return _C_narrow_tab [__c];
 
     // template argument provided to work around an HP aCC bug (PR #27087)
     ctype<wchar_t>* const __self = _RWSTD_CONST_CAST (ctype<wchar_t>*, this);
 
     const char __ch = do_narrow (__c, __dfault);
 
-    if (__inx < sizeof _C_narrow_tab / sizeof *_C_narrow_tab && __ch != __dfault)
-        __self->_C_narrow_tab [__inx] = __ch;
+    if (   0 <= __c
+        && __c < sizeof _C_narrow_tab / sizeof *_C_narrow_tab
+        && __ch != __dfault)
+        __self->_C_narrow_tab [__c] = __ch;
 
     return __ch;
 }
diff --git a/include/rw/_config.h b/include/rw/_config.h
index 549f8e2..ecb79a5 100644
--- a/include/rw/_config.h
+++ b/include/rw/_config.h
@@ -37,7 +37,7 @@
 
 /*** library version numbers and ids **************************************/
 
-#define _RWSTD_VER 0x04020100
+#define _RWSTD_VER 0x04020001
 //                    | | | |
 //                   MMmmuupp
 //                    | | | |
diff --git a/include/rw/_defs.h b/include/rw/_defs.h
index 9d5d0e6..aeb7599 100644
--- a/include/rw/_defs.h
+++ b/include/rw/_defs.h
@@ -1269,20 +1269,6 @@
 #endif   // _RWSTD_SSIZE_T
 
 
-// _RWSTD_UWCHAR_INT_T is "unsigned wchar_t"
-#ifndef _RWSTD_UWCHAR_INT_T
-#  if _RWSTD_CHAR_SIZE == _RWSTD_WCHAR_SIZE
-#    define _RWSTD_UWCHAR_INT_T unsigned char
-#  elif _RWSTD_SHRT_SIZE == _RWSTD_WCHAR_SIZE
-#    define _RWSTD_UWCHAR_INT_T unsigned short
-#  elif _RWSTD_INT_SIZE == _RWSTD_WCHAR_SIZE
-#    define _RWSTD_UWCHAR_INT_T unsigned int
-#  else
-#    define _RWSTD_UWCHAR_INT_T _RWSTD_SIZE_T
-#  endif
-#endif   // _RWSTD_UWCHAR_INT_T
-
-
 #if defined(SNI)
 #  define _RWSTD_USING_SNI(name) _USING(__SNI::name)
 #  if defined(_RWSTD_STRICT_ANSI)
