Hello Chuck! I am using cygwin 1.3.4-1 at the moment with cygipc 1.10-1. The problem i have is, that if all processes using shm are dead (nattch = 0) and the flag SHM_DEST is set in shm_perm.mode, the shm-entry does not disappear until calling ipcrm, so i can't start my application again. My application is already working on many unixes (HP-UX/AIX/Linux/SunOS/ReliantUNIX), and now i also tested it successfully on FreeBSD. So i checked the behaviour of shmctl(IPC_RMID) and shmdt(), in cooperation with fork() after shmat(), watching the output of ipcs on HP-UX, Linux and FreeBSD. In short words my test does this: *) Some tasks are using the same shm. *) one of these tasks says shmctl(IPC_RMID) *) on all systems this shmid is invalidated *) on HP-UX and Linux another task can create a new shm with same key now while the old tasks can continue using their shm. *) on FreeBSD the shmid does not disappear until the last task using it has shmdt()'d, but the key of this shmid is changed to zero and a new task cannot create a new shm with this key. Somewhere on cygwin's homepage i read that cygwin wants to be more like FreeBSD than Linux, so i tried to modify to FreeBSD-behaviour (which i like more than the others in this special case) with attached patch. Another problem might be that forking with attached shm does not increment the nattch-counter, but this is not really a problem for me and i suppose this might not be as simple as this one. Please can you check this patch, i can't really say if it affect's other applications using cygipc, especially postgresql (i found it often together with cygipc in the mailing-lists), since i am not yet using postgresql. Maybe you should remove the unneeded function killseg() in shm.c Thank you very much for reading this quite long mail! -- haubi Michael Haubenwallner SALOMON Automation GmbH Forschung & Entwicklung A-8114 Friesach bei Graz T +43 3127 200 308 T +43 3127 200 mailto:michael.haubenwallner@salomon.at http://www.salomon.at