You might sprinkle calls to freeMemory() at different point in loop() to see if that's your problem. Check out:
http://playground.arduino.cc/Code/AvailableMemory