Corrupt data received using XbeePro on Mega

Hi all :),

I am using two XbeePro modules. One is a Coordinator on an Uno which is sending serial data at 19200 baud. The other one is placed on a Mega and is configured as an End-device to receive the transmitted data at the same baud rate as the transmitted data(i.e.19200). I am using 'Realterm' to monitor the received data. I had a few observations which I could not explain:

  1. When I "opened" the serial port I received a lot of zeros between the bytes which I was receiving. They were not supposed to be there.
  2. When I "closed" the port and "reopened" it again (by just pressing the "open" button), the data transmission would not resume. In other words, the TX light which was blinking before, would no longer blink and no newly received data would be seen on 'Realterm'.
  3. The TX light was not blinking uniformly till I introduced a 10ms delay to my code on Mega. After the addition of 10ms delay the TX light remained "ON".

The interesting thing is that when I used 'X-CTU' and had a look at what was being received, it showed me the expected data with no or minimum corruption.
Also, before I added a 10ms delay in the receiving end in Mega, I added a delay in the sending end, but then I had some data chunks missing and the TX light was blinking less frequently than before.
So what is going on in the Arduinos ? I would appreciate any help or guidance XD

Not any ideas at all??? :~ Let me know if you require more information about the situation.