I just tested llListen and it worked ok.
Opensim Revision3697 Windlight Client
I had found a strange bug in state_entry() before. If you do not have a semicolon in state_entry() even in a comment then the script would not compile. You get an error cs 1520. I just tested this again and sure enough when I added a commented semicolon to state entry it compiled just fine.
Anyway here is the code with the llListen in state_entry that worked just fine.
default
{
state_entry()
{
llListen(0,"","","");
}
listen(integer chan,string name,key id,string msg)
{
llSay(0,"I heard you say " + msg);
}
}