--- 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;
     }
   }
 
