--- dosfstools-3.0.9/src/check.c.old 2010-01-23 10:13:17.000000000 +0100 +++ dosfstools-3.0.9/src/check.c 2011-01-31 17:43:31.462674941 +0100 @@ -174,7 +174,10 @@ offset = fs->root_start+next_free*sizeof(DIR_ENT); memset(de,0,sizeof(DIR_ENT)); while (1) { - sprintf(de->name,pattern,curr_num); + char expanded[12]; + sprintf(expanded, pattern, curr_num); + memcpy(de->name, expanded, 8); + memcpy(de->ext, expanded+8, 3); for (scan = 0; scan < fs->root_entries; scan++) if (scan != next_free && !strncmp(root[scan].name,de->name,MSDOS_NAME))