Index: create.c =================================================================== --- create.c (revision 187909) +++ create.c (working copy) @@ -212,7 +212,7 @@ output(indent, &offset, "size=%jd", (intmax_t)p->fts_statp->st_size); if (keys & F_TIME) - output(indent, &offset, "time=%ld.%ld", + output(indent, &offset, "time=%ld.%09ld", (long)p->fts_statp->st_mtimespec.tv_sec, p->fts_statp->st_mtimespec.tv_nsec); if (keys & F_CKSUM && S_ISREG(p->fts_statp->st_mode)) { Index: spec.c =================================================================== --- spec.c (revision 187910) +++ spec.c (working copy) @@ -172,6 +172,7 @@ mode_t *m; int value; char *ep; + int i; for (; (kw = strtok(t, "= \t\n")); t = NULL) { ip->flags |= type = parsekey(kw, &value); @@ -258,6 +259,8 @@ val = ep + 1; ip->st_mtimespec.tv_nsec = strtoul(val, &ep, 10); + for (i = ep - val; i < 9; ++i) + ip->st_mtimespec.tv_nsec *= 10; } else ip->st_mtimespec.tv_nsec = 0; if (*ep)