Println bug?

Println deals with the data types unsigned char and byte incorrectly. Reporting negative one, instead of 255, in the example below.
Unsigned ints, which I thought might exhibit the same behavior, seem to work fine though.

It has to do with doing the math inside the println parenthesis.

unsigned char j;

void setup() {
Serial.begin(9600);
}

void loop(){
j= 0;
Serial.println((j-1), DEC);

}

Nice catch. I'm not too surprised that there's a problem in the maze of casts going on in the serial code - it's not pretty. I'll put it on the list.