I'm surprise this is right on any machine. But I'll check my Suse 6.3 box here in a few hours. In bsd-login.c if you go down to the 'tty = ttyslot();' and insert a debug("LOGIN: ttyslot = %d",tty); then run the server in debug mode and log with a client. You'll see the ttyslot your using in the utmp file. Now.. The kicker. I can log into my NeXT box and I get assigned one ttyslot() number for my session (which I assume is done after the fork()).. But when I logout I get assigned a different ttyslot() number. Suprised? I sure was.. What this does is causes the utmp file to not be updated correctly. Wonder if this has anything to do with a lack of complete sig*() functions. Any one have any perls of wisdom?