If you run into this problem it means that you’re probably using the XBeeShield. Maybe you didn’t notice but if you take a look to the Arduino XBee Shield schematics you’ll find out that DIO7 (CTS – Clear to Send) on the XBee is wired to RST in the Arduino. And that’s why you get the Arduino reset.Even if you set DIO7 configuration to 0 – DISABLED (using X-CTU) the DIO7 will be set to HIGH then XBee enters sleep (This is stated in the “End Device Sleep Configuration”/“XBee End Device Configuration” chapter of the XBee Manual) .
So I guess that if you really want to send the XBee to sleep you need to cut the connection between DIO7 and RST in the Arduino, by either cutting the pcb trace or cutting the pin in XBee or XBee Shield. Good luck with that.
If you manage to do it please post in the comments your experiences or write something in this Arduino forum thread Arduino forum thread