I got around the same thing by creating a wrapper program with a file. Everytime some one chooses the option the file is checked for number of users and will deny access if the concurrent limit has been reached. I display a screen of current users so the rejected can approach other users to back out if access is critical. Backing out ot the option removes the user from the file. I also have a little clean up pgm that will remove entries for users that get kicked from the system or turn off their desktops with backing out of the option.