On one machine I have, chmod g+s fails to set the sticky bit. The command does not return any error, but ls -l continues to show the bit not set. $ mkdir foo $ chgrp flight foo $ chmod g+ws foo $ ls -ld foo drwxrwxr-x+ 1 nort flight 0 Jun 29 06:50 foo I ran strace, and it looks like the correct system call parameter is getting passed. I am curious as to how the sticky bit is implemented. It isn't obvious what underlying Windows functionality (if any) is applied. Ah, just checked on a system where this works, and creating a file in the directory from the command shell does not set the group, so presumably this functionality is all within cygwin. That works for my application, except when it doesn't. Any suggestions on what I should look for?