Compile to RAM versus FLASH: sprintf


I’m using a rabbit BL2100 for adapting and redirecting RS232 messages to an ethernet device(via UDP).
Until now I could test my code by compiling it to RAM. Recently I had to compile it to FLASH because the program became to big. By doing this I’m struggling with next problem:

Compiling to RAM: sprintf works.
Compiling to FLASH: sprintf doesn’t work at all.

A sample code whcih shows the same behaviour as the program:

char *Message[10], *Help_Char[10];

sprintf(*Message, “%s”, “hellohello”);
sprintf(*Help_Char, “%c”, 42);
*Message = strcat(*Message, *Help_Char);
", *Message);

When compiled to RAM and watching *Message and Message, the variables do what they are expected to do.
When compiled to FLASH and watching the same variables the *Message contains "\x,4,\x19,\x-4,\x11" and this doesn’t change after the first sprintf.

Can somebody help me out here? I’m kind of desparate since it took me severall days to detect that the errorneous behaviour started after I started compiling to FLASH…
Let’s hope it will be a RTFM-answer and there’s nothing wrong with the board…

Thanks in advance!! If you need any additional info, please ask.

PS: I’m using dynamic C8.61 running on XP.

2010/10/31: Update on this problem:
It’s not specific sprint related (problem stays if I use strcpy).
If I DO NOT use pointers, sprintf and strcpy work!! In both cases (compiled to RAM and to FLASH).
Unfortunately I have to use pointers because I have to use the strcat function…