I have had this problem before too, and at first I seemed to be the only person to experience it. It has to do with an incompatibility in all versions of Allegro starting with v4.1.0, manual bitmap locking or page flipping, and from what I understood, Windows 98. If you're not using Windows 98, it might be important to know which OS you're using specifically and what kind of video card you have. (My video card is an ASUS branded GeForce FX 5200.) The problem is related to the input sub-system. Since and including Allegro 4.1.0, all I/O threads under Windows were merged into one, but something that was changed as a result is causing this problem, and only on very few systems. (I assumed it was a Windows 98 thing.)
On my system, the problem only happens full-screen. Even CTRL-ALT-DEL stops working when it happens and I have to reboot with the reset button on my tower.
To get around the problem, I had to do two things:
1: Not manually lock bitmaps or use the show_video_bitmap() command. (Limiting me to double buffering, though I can still call vsync() to at least get close to page flipping quality.)
2: Add rest(1) or Sleep(1) to my game loops to give time back to the OS to prevent the I/O from stuttering. (A potentially related problem that started at the same time as the page flipping / bitmap locking problem.)
Besides that workaround I do not have the faintest idea how to solve the problem, and since the computers it happens on are very specific, I doubt anyone does. (I've brought it up three times in the past and never resolved it any of those times. All I managed to find out was when the problem began.)
One other workaround would be to go back to using Allegro 4.0.3, but you'll be giving up other fixes and the "_ex" functions if you do.
--- Kris Asick (Gemini)