{
        struct file_size *rest = (struct file_size *)malloc(length * sizeof(struct file_size));
        unsigned long long filesize = 0;
+       char *filename;
        int restcount = 0;
        FILE *out;
 
        out = fopen(output, "w");
        for(int i = 0; i <= length; i++) {
                // ISO9660 filesystem overhead
-               filesize = 33 + strlen(input[i].name) + input[i].fsize;
+               filename = strrchr(input[i].name, '/') + 1;
+               filesize = 33 + strlen(filename) + input[i].fsize;
                filesize = ceil(filesize / 2048.0) * 2048;
                // filesize inklusive overhead
                if(splitgroesse >= filesize) {