Using serial-data to define Ax-pin - problem

analogWrite() works correctly with the numbers 0....

int analogRead(uint8_t pin)
{
 uint8_t low, high;

#if defined(analogPinToChannel)
#if defined(__AVR_ATmega32U4__)
 if (pin >= 18) pin -= 18; // allow for channel or pin numbers
#endif
 pin = analogPinToChannel(pin);
#elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
 if (pin >= 54) pin -= 54; // allow for channel or pin numbers
#elif defined(__AVR_ATmega32U4__)
 if (pin >= 18) pin -= 18; // allow for channel or pin numbers
#elif defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644__) || defined(__AVR_ATmega644A__) || defined(__AVR_ATmega644P__) || defined(__AVR_ATmega644PA__)
 if (pin >= 24) pin -= 24; // allow for channel or pin numbers
#else
 if (pin >= 14) pin -= 14; // allow for channel or pin numbers
#endif