print(negativeInt ,BIN) not working as expected

I have a problem in understanding the output of the following Code

void setup() {

int max =32767;
int min =-32768;

void loop() {
  Serial.print (" ");
  Serial.print (max);
  Serial.print (" is binary ");
  Serial.println (max, BIN);
  Serial.print (min);
  Serial.print (" is binary ");
  Serial.println (min, BIN);

The output I get is

 32767 is binary 111111111111111
-32768 is binary 11111111111111111000000000000000

The output of max is clear for me, it is an integer (2 bytes) with leading zero as a positve number (leading zeros are not printed).
But the output of min? The last two byte seem ok to me - leading one for negative and all zero. Only the first two bytes all set to one, why do I get this? Or is this a bug - I’m currently using IDE 1.5.7 (just updatet was the same in 1.5.6)
This also happens for all other negative values.

I found the same question :

The numbers with DEC and HEX are printed without the leading zero. Even the BIN is missing the leading zero for the positive number. That is consistent with DEC and HEX, but not something I would expect.

The negative number seems to be converted to a larger integer. Is that a bug ? maybe.

In my K&R example limits.h, the min value is -32767, you might have created a long constant.

No, it isn't a bug. There are only so many overloads for "print", and "int"s are printed as "long".

Thank you, good to know this behaviour is intentionally (but not in the description of Serial.print() :( ) as long as I only have this in my debug output everything is fine.