Index: myglut-x11.c
===================================================================
--- myglut-x11.c	(revision 916)
+++ myglut-x11.c	(revision 917)
@@ -658,11 +658,11 @@
             }
 
             // special down
-            if(special && updown==GLUT_DOWN && glutSpecialFuncCB && !raydium_key[result])
+            if(special && updown==GLUT_DOWN && glutSpecialFuncCB && !raydium_key[result%RAYDIUM_KEYBOARD_SIZE])
                 glutSpecialFuncCB(result,event.xkey.x, event.xkey.y);
 
             // special up
-            if(special && updown==GLUT_UP && glutSpecialUpFuncCB && raydium_key[result])
+            if(special && updown==GLUT_UP && glutSpecialUpFuncCB && raydium_key[result%RAYDIUM_KEYBOARD_SIZE])
                 glutSpecialUpFuncCB(result,event.xkey.x, event.xkey.y);
 
             // normal
T;    special=1; break;
 
-				default:
-					// don't do this for WinCE
+                                default:
+                                        // don't do this for WinCE
 
 
           b = GetKeyboardState( state );
-					assert(b);
+                                        assert(b);
 
-					code [ 0 ] = 0; // WK: I need to do this, or on my Win2k box, the upper bits remain unchanged.
+                                        code [ 0 ] = 0; // WK: I need to do this, or on my Win2k box, the upper bits remain unchanged.
           if( ToAscii( key, 0, state, code, 0 ) == 1 )
-						if((0xFF00 & code[0]) == 0) // setting a high bit in key causes crashes later on (out of range array access)
-							key=code[ 0 ];
+                                                if((0xFF00 & code[0]) == 0) // setting a high bit in key causes crashes later on (out of range array access)
+                                                        key=code[ 0 ];
 
       }
       if ( key != -1)
         {
 
-	    // special down
-	    if(special && updown==GLUT_DOWN && glutSpecialFuncCB && !repeating)
-		glutSpecialFuncCB(key,lastx,lasty);
+            // special down
+            if(special && updown==GLUT_DOWN && glutSpecialFuncCB && !repeating)
+                glutSpecialFuncCB(key,lastx,lasty);
 
-	    // special up
-	    if(special && updown==GLUT_UP && glutSpecialUpFuncCB && !repeating)
-		glutSpecialUpFuncCB(key,lastx,lasty);
+            // special up
+            if(special && updown==GLUT_UP && glutSpecialUpFuncCB && !repeating)
+                glutSpecialUpFuncCB(key,lastx,lasty);
 
         // normal
-	    if(!special && updown==GLUT_DOWN && glutKeyboardFuncCB)
-		glutKeyboardFuncCB(key,lastx,lasty);
+            if(!special && updown==GLUT_DOWN && glutKeyboardFuncCB)
+                glutKeyboardFuncCB(key,lastx,lasty);
 
 
         /*if(!special && repeating && glutKeyboardFuncCB)
@@ -436,7 +436,7 @@
       _glutWindowSize[0]=size[0];
       _glutWindowSize[1]=size[1];
       if (glutReshapeFuncCB)
-    	    glutReshapeFuncCB(size[0], size[1]);
+            glutReshapeFuncCB(size[0], size[1]);
       break;
 
     case WM_CLOSE: