Sorry guys, I made a very silly mistake here, i was using Serial.print here in ISR, following the Slave_Receiver example in the Arduino examples. I got a bit carried away with the use of those Serial debug messages and added lots of them,
I got this info from http://stackoverflow.com/questions/17985830/arduino-using-interrupts-freezes-processing-and-serial-outputhttps://stackoverflow.com/questions/17985830/arduino-using-interrupts-freezes-processing-and-serial-output
checkout answer by elias
The code does not freeze now. Sorry for the troubles, i hope this helps someone else in return.