This is just to inform ThinkPad 600 users that I have tested the latest kernel, 2.2.17pre6, and can report that SFAICT the hibernation problem has been solved.
With kernel 2.2.15, when one would request hibernation the machine would hang up for a few seconds, beep, and then hibernate. But the problem was more serious than there being a delay: at the time of the beep the APM software was also falsely carrying out a "resume" sequence, with the result that the machine was not properly prepared for hibernation. The ThinkPad 600 needs to be prepared for sedation by stopping all programs generating sounds, so that on resume they will not attempt to make sounds before the ALSA cs4236 driver has had a chance to restore the sound chip register contents which are lost during a sedation. (Since release 0.5.8 the ALSA cs4236 driver restores sound chip registers on resume. The current Debian alsa-base package includes the script /etc/apm/event.d/alsa which STOPs and CONTs sound processes before and after sedate and resume. I like Debian.) The release notes for Alan Cox's Linux 2.2.16pre5 describe changes to the APM driver designed to handle an IBM ThinkPad BIOS bug. The bug is that "Thinkpads keep sending SUSPEND events until something else happens." A quick look at the patch reveals that the APM_IGNORE_MULTIPLE_SUSPEND configuration option has been removed and the driver will now reject multiple suspends all the time. This, we may presume, is what has fixed the problem described above. Thomas Hood