diff -r c5d651a8b679 src/events/SDL_keyboard.c --- a/src/events/SDL_keyboard.c Fri Dec 02 18:35:04 2011 -0500 +++ b/src/events/SDL_keyboard.c Sat Dec 03 16:29:10 2011 -0600 @@ -534,7 +534,7 @@ if ( keysym->sym != SDLK_UNKNOWN ) { /* Drop events that don't change state */ - if ( SDL_KeyState[keysym->sym] == state ) { + if ( SDL_KeyState[keysym->sym] == state && SDL_KeyRepeat.delay == 0) { // added, allow repeat #if 0 printf("Keyboard event didn't change state - dropped!\n"); #endif @@ -554,11 +554,11 @@ /* * jk 991215 - Added */ - if (repeatable && (SDL_KeyRepeat.delay != 0)) { - SDL_KeyRepeat.evt = event; - SDL_KeyRepeat.firsttime = 1; - SDL_KeyRepeat.timestamp=SDL_GetTicks(); - } + //if (repeatable && (SDL_KeyRepeat.delay != 0)) { + // SDL_KeyRepeat.evt = event; + // SDL_KeyRepeat.firsttime = 1; + // SDL_KeyRepeat.timestamp=SDL_GetTicks(); + //} if ( (SDL_EventOK == NULL) || SDL_EventOK(&event) ) { posted = 1; SDL_PushEvent(&event); diff -r c5d651a8b679 src/video/SDL_video.c --- a/src/video/SDL_video.c Fri Dec 02 18:35:04 2011 -0500 +++ b/src/video/SDL_video.c Sat Dec 03 16:29:10 2011 -0600 @@ -640,7 +640,7 @@ } /* Reset the keyboard here so event callbacks can run */ - SDL_ResetKeyboard(); + //SDL_ResetKeyboard(); // don't reset? SDL_ResetMouse(); SDL_SetMouseRange(width, height); SDL_cursorstate &= ~CURSOR_USINGSW; diff -r c5d651a8b679 src/video/windib/SDL_dibevents.c --- a/src/video/windib/SDL_dibevents.c Fri Dec 02 18:35:04 2011 -0500 +++ b/src/video/windib/SDL_dibevents.c Sat Dec 03 16:29:10 2011 -0600 @@ -149,9 +149,9 @@ } #endif /* Ignore repeated keys */ - if ( lParam&REPEATED_KEYMASK ) { - return(0); - } + //if ( lParam&REPEATED_KEYMASK ) { + // return(0); + //} switch (wParam) { case VK_CONTROL: if ( lParam&EXTENDED_KEYMASK )