diff -ur cdrkit-1.1.8/genisoimage/tree.c cdrkit-1.1.8-new/genisoimage/tree.c --- cdrkit-1.1.8/genisoimage/tree.c 2008-09-16 16:51:28.000000000 +0200 +++ cdrkit-1.1.8-new/genisoimage/tree.c 2008-09-16 16:49:59.000000000 +0200 @@ -48,6 +48,7 @@ #include #include #include +#include extern int allow_limited_size; @@ -1421,12 +1422,15 @@ return (0); } if (this_dir == root && strcmp(short_name, ".") == 0) - root_statbuf = statbuf; /* Save this for later on */ + memcpy(&root_statbuf, &statbuf, sizeof(root_statbuf)); /* Save this for later on */ /* We do this to make sure that the root entries are consistent */ if (this_dir == root && strcmp(short_name, "..") == 0) { - statbuf = root_statbuf; - lstatbuf = root_statbuf; + if (!root_statbuf.st_ctime) { + stat_filter(dirname(whole_path), &root_statbuf); + } + memcpy(&statbuf, &root_statbuf, sizeof(statbuf)); + memcpy(&lstatbuf, &root_statbuf, sizeof(lstatbuf)); } if (S_ISLNK(lstatbuf.st_mode)) {