Hey guys I am having trouble with the following code:

Code:
#define BYTE unsigned char

struct sentence
{

BYTE warningFlag[1];
BYTE cycleLockFlag[1];
BYTE xte[10];
BYTE dirToSteer[1];
BYTE xtDevUnits[10];
BYTE cirArrAlarm[10];
BYTE perpArrAlarm[10];
BYTE orgToWPt1[10];
BYTE orgType[1];
BYTE nxtWPtId[10];
BYTE hts[10];
BYTE htsType[1];
BYTE checkSum[1];
};

struct sentence apb;


char testMethod()
{

BYTE tempxte[10];
BYTE ch;
int i=0;

	while((ch=WaitRx())!=',') //WaitRx() 
//WaitRx() reads in a char at a time
	{
		tempxte[i]=ch;
		i++;
	}

return *tempxte;
}

void parseAPB(){

skipComma(1); //sentence delimeted by commas
//skipcomma skips 1 comma in sentence

*apb.warningFlag = testMethod();
printline(apb.warningFlag);
printline(",");
}
The struct contains information about a sentence.
testMethod() reads the data into tempxte until a comma is found and then returns this value.
parseAPB() assigns the returned value from testMethod() into the struct, apb.warningFlag, this is then printed.

The problem is that only the first character from the parsed line is output, i.e
actual input "hello",
what is copied to warningFlag = 'h'

I think I have messed up my pointers or something crazy, can anyone help?