Index: trunk/src/gl/gl_window.cc
===================================================================
--- trunk/src/gl/gl_window.cc	(revision 171)
+++ trunk/src/gl/gl_window.cc	(revision 172)
@@ -28,4 +28,14 @@
 	{
 		kevent.key.ascii = static_cast<char8>( ucode );
+#if NV_SDL_VERSION == NV_SDL_20
+		if (ucode >= 'a' && ucode <= 'z')
+		{
+			int shifted = !!(ke.keysym.mod & KMOD_SHIFT);
+			int capslock = !!(ke.keysym.mod & KMOD_CAPS);
+			if ((shifted ^ capslock) != 0) {
+				kevent.key.ascii = SDL_toupper(ucode);
+			}
+		}
+#endif
 	}
 
Index: trunk/src/lib/lua.cc
===================================================================
--- trunk/src/lib/lua.cc	(revision 171)
+++ trunk/src/lib/lua.cc	(revision 172)
@@ -45,4 +45,5 @@
 #	include <nv/lib/detail/lua_functions_compat.inc>
 #	undef NV_LUA_COMPAT_FUN
+int LUA_UPVALUEINDEX  = 0;
 int LUA_REGISTRYINDEX = 0;
 int LUA_VERSION_NUM   = 0;
@@ -266,4 +267,5 @@
 		NV_LUA_LOAD( luaL_getsubtable );
 
+		LUA_UPVALUEINDEX  = LUA_REGISTRYINDEX_52;
 		LUA_REGISTRYINDEX = LUA_REGISTRYINDEX_52;
 		LUA_VERSION_NUM   = 502;
@@ -292,4 +294,5 @@
 		NV_LUA_LOAD( lua_equal );
 		lua_compare       = lua_compare_51;
+		LUA_UPVALUEINDEX  = LUA_GLOBALSINDEX_51;
 		LUA_REGISTRYINDEX = LUA_REGISTRYINDEX_51;
 		LUA_VERSION_NUM   = 501;
Index: trunk/src/lua/lua_glm.cc
===================================================================
--- trunk/src/lua/lua_glm.cc	(revision 171)
+++ trunk/src/lua/lua_glm.cc	(revision 172)
@@ -340,4 +340,5 @@
 	int stack = lua_gettop( L );
 
+	luaL_requiref(L, "coord", luaopen_vec<nv::ivec2>, 1);
 	luaL_requiref(L, "ivec2", luaopen_vec<nv::ivec2>, 1);
 	luaL_requiref(L, "ivec3", luaopen_vec<nv::ivec3>, 1);
