Hmm, what about changing: if (szCmd[0]==';') { pEverQuest->InterpretCmd((EQPlayer*)pChar,szOriginalLine); return; } into if (szCmd[0]==';') { pEverQuest->InterpretCmd((EQPlayer*)pChar,szLine); return; } So it sends the parsed line instead of the unparsed one.. Should work? Actually, its kinda danger...