As Russ said, the version on /n/sources is a 4th edition version. You must have the 3rd edition version off his website. The real source is in /acme/bin/source/acd. If it isn't there, then run replica to update your source. If you can't do that, then read the manual page for fmtinstall(1) which gives a very good example of how this stuff works. If you can't do that then int msfconv(Fmt *fp) { Msf m; m = va_arg(fp->args, Msf); fmtprint(fp, "%d.%d.%d", m.m, m.s, m.f); return 0; } is what you need.