Which gives you 2K of SRAM. Given the behaviour you've described and the limited amount of SRAM available, there's a very good chance that the stack is bumping into the data area.
Copy get_free_memory into your Sketch...
http://forum.pololu.com/viewtopic.php?f=10&t=989&view=unread#p4218
In setup, call get_free_memory and print the result.
If the value is negative, you have definately run out of memory. If the value is small, there may or may not be a free-memory problem. If the value is large, the problem is probably something else. Unfortunately, it's difficult to define "small" and "large". It depends on how many functions call other functions and how many automatic variables are used by each function.
Oh, and get rid of this...
printf("field = \"%s\"\n", field);