The problem I think is that just merely going
Code:
quest::say("Hello there, this some text, la, la, la.");
and finding that it works, does not mean that it works.

It was indeed still causing problems last I checked. I'm not feeling up to getting unpatched source again and compiling to check right now, but problems arose with other commands that were in cmd_queue. ie: the following would cause problems (I'm guessing).
Code:
sub EVENT_SAY {
if ($text =~ /Hail/) {
quest::say("Hello, hello, hello, hello, hello, hello, hello, hello.");
quest::spawn(1234);
quest::say("Hello, hello, hello, hello, hello, hello, hello, hello.");
quest::spawn(5678);
}
}
Try handing items and things in conjunction with quest::say().. I ran into problems, and what I posted fixed the problem. Go to around line 330 or so in zone/embparser.cpp, before ExCommands() is called, and start outputting the $quest::cmd_queue[%d] values and num_args values. You should notice that something funny is going on.