The intel driver in 9.04 has a bug that makes X segfault when trying to regenerate its session. Basically, when logging out it tries to unload everything and go back to the login screen, to reuse the loaded modules, drivers, etc. A workaround is to tell it to end the X process and start a completely new one.
Add the following line (in bold) under the [X-:*-Core] header in your kdmrc.
# Restart instead of resetting the local X-server after session exit.
# Use it if the server leaks memory etc.
# Default is false