touch should just try to set the mtime, if the file server will let it. try this change and see if it behaves better. %% diff -n touch.c /sys/src/cmd/touch.c touch.c:30 c /sys/src/cmd/touch.c:30 < Dir stbuff, nstbuff; --- > Dir stbuff; touch.c:39,44 d /sys/src/cmd/touch.c:38 < } < stbuff.mtime = time(0); < if(dirwstat(name, &stbuff) >= 0){ < /* check that file server paid attention */ < if(dirstat(name, &nstbuff) >=0 && nstbuff.mtime == stbuff.mtime) < return 0; %%