Huh. The stk500v1 spec says 4 parameters including the "EOP" character, but it looks like avrdude has been sending 5.
AVRISP says it receives 4 parameters, which I guess is correct, but I wonder if that's from the spec, or from testing...
I guess I'll try to test my next patch before I ask you to try it!
uint8_t l = getch() - 1;