Ah, right. Since I'm using Slackware 8.1, which has Gnome 1.something, and since I'm behind a dialup link and therefore don't have a whole lifetime to download Gnome 2, I've improvised a solution which appears to work...
Since I'm only running X on display :0, in /etc/opt/gnome/gdm/PostSession, I copied the Default script to :0 and added the following lines to the end:
# Force X server restart
if [ -f /tmp/.X0-lock ]; then
kill $(cat /tmp/.X0-lock)
This seems to have done the trick, despite being a hideous kludgy hack.
Thanks very much to elanthis for the hints. Hopefully this could solve the issue for everyone else as well.