Forgot to mention that I am using Arduino Mega2560 and I also use Hardwareserial library.
I am on my Cel phone and cannot paste code right now.
Hardwareserial uses interrupts to process incoming bytes and fill its internal library buffer, so I thought that to be 100% sure I do not miss any incoming byte during my ISR I better use nested interrupts.
When entering ISR I disable timer2 interrupt to avoid looping.
All this is due to the fact that I have to use malloc() inside my ISR (not in all cases of my ISR) which I know can delay the execution.
Thanks