--- BlockOut/BlockOut.cpp.orig 2008-01-10 05:29:06.000000000 +1100 +++ BlockOut/BlockOut.cpp 2013-09-29 18:27:48.000000000 +1000 @@ -340,11 +340,15 @@ // Handle key presses if( event->type == SDL_KEYDOWN ) { - int unicode = (event->key.keysym.unicode & 0x7F); + int unicode = (event->key.keysym.unicode & 0x8000000); if( unicode ) { m_bKey[unicode] = 1; } else { - m_bKey[event->key.keysym.sym] = 1; + int sym = event->key.keysym.sym; + if ((event->key.keysym.mod & KMOD_SHIFT) && sym >= 'a' && sym <='z') { + sym -= 'a' - 'A'; + } + m_bKey[sym] = 1; } }