It's caused by the code in frontend/main.c which uses %i to read in the value. %i will try to intelligently decide if the number if hexadecimal, octal, or decimal/base 10. The leading 0 in track numbers will make it choose octal. The digits 8 and 9 are not valid in octal so the program isn't reading them.
To fix this, you can modify the source code. Lines 610 and 613 of frontend/main.c need to use %d and not %i. I've tested this fix and it works well for me.
Basically, these lines (609-614) in main.c:
CODE
case TRACK_FLAG:
sscanf(optarg, "%i/%i", &trackno, &ntracks);
break;
case DISC_FLAG:
sscanf(optarg, "%i/%i", &discno, &ndiscs);
break;
Should be the following:
CODE
case TRACK_FLAG:
sscanf(optarg, "%d/%d", &trackno, &ntracks);
break;
case DISC_FLAG:
sscanf(optarg, "%d/%d", &discno, &ndiscs);
break;
I'm working with the developers trying to get this change in, but I'm not sure how soon it will be. It is a very simple fix--4 characters. The bug is already in the bug tracker at SourceForge. I realize it isn't easy if you don't know how to edit and compile code from scratch. At least this provides a fix for some until that change is made.