Music on hold doesn't start until 1st announcement in queue

Hi All,
I am having a strange problem on FreePBX 1.2.1 with Moh and Queues.
When the call goes to the queue the music doesn’t start before after the first announcement. So, the caller hears 15 seconds of silence untill first ringing times out, which is not very good. Here is the console output, you can see that moh is stopped on purpose for some reason.

[code:1] – Executing Queue(“IAX2/VoicePulse21-1”, “77|t|||900”) in new stack
– Started music on hold, class ‘default’, on IAX2/VoicePulse21-1
– Executing Macro(“Local/110@from-internal-531c,2”, “exten-vm|110|110”) in new stack
– Executing Macro(“Local/110@from-internal-531c,2”, “user-callerid”) in new stack
– Executing GotoIf(“Local/110@from-internal-531c,2”, “1?report”) in new stack
– Goto (macro-user-callerid,s,9)
– Executing NoOp(“Local/110@from-internal-531c,2”, "Using CallerID "****" <>") in new stack
– Executing Set(“Local/110@from-internal-531c,2”, “FROMCONTEXT=exten-vm”) in new stack
– Executing Set(“Local/110@from-internal-531c,2”, “VMBOX=110”) in new stack
– Executing Set(“Local/110@from-internal-531c,2”, “EXTTOCALL=110”) in new stack
– Executing Set(“Local/110@from-internal-531c,2”, “CFUEXT=”) in new stack
– Executing Set(“Local/110@from-internal-531c,2”, “RT=15”) in new stack
– Executing Macro(“Local/110@from-internal-531c,2”, “record-enable|110|IN”) in new stack
– Executing GotoIf(“Local/110@from-internal-531c,2”, “0 > 0?2:4”) in new stack
– Goto (macro-record-enable,s,4)
– Executing AGI(“Local/110@from-internal-531c,2”, “recordingcheck|20060922-111440|1158938080.248”) in new stack
– Launched AGI Script /var/lib/asterisk/agi-bin/recordingcheck
– Called Local/110@from-internal
– Stopped music on hold on IAX2/VoicePulse21-1 ///// PROBABLY BECAUSE OF THIS CALLER DOESNT HEAR ANY MUSIC FIRST TIME
recordingcheck|20060922-111440|1158938080.248: Inbound recording enabled.
recordingcheck|20060922-111440|1158938080.248: CALLFILENAME=20060922-111440-1158938080.248
– AGI Script recordingcheck completed, returning 0
– Executing Monitor(“Local/110@from-internal-531c,2”, “wav49|20060922-111440-1158938080.248| mb”) in new stack
– Executing GotoIf(“Local/110@from-internal-531c,2”, “1?dolocaldial|1”) in new stack
– Goto (macro-exten-vm,dolocaldial,1)
– Executing Macro(“Local/110@from-internal-531c,2”, “dial||tr|110”) in new stack
– Executing AGI(“Local/110@from-internal-531c,2”, “dialparties.agi”) in new stack
– Launched AGI Script /var/lib/asterisk/agi-bin/dialparties.agi
dialparties.agi: Starting New Dialparties.agi
– dialparties.agi: priority is 1
dialparties.agi: Caller ID name is '
’ number is '*********'
dialparties.agi: Methodology of ring is ‘none’
– dialparties.agi: Added extension 110 to extension map
– dialparties.agi: Extension 110 cf is disabled
– dialparties.agi: Extension 110 do not disturb is disabled
– dialparties.agi: Checking CW and CFB status for extension 110
– dialparties.agi: DbSet CALLTRACE/110 to *********
– AGI Script dialparties.agi completed, returning 0
– Executing Dial(“Local/110@from-internal-531c,2”, “SIP/110||tr”) in new stack
– Called 110
– Local/110@from-internal-531c,1 is ringing
– SIP/110-081e0748 is ringing
– Nobody picked up in 15000 ms
== Spawn extension (macro-dial, s, 10) exited non-zero on ‘Local/110@from-internal-531c,2’ in macro ‘dial’
== Spawn extension (macro-dial, s, 10) exited non-zero on ‘Local/110@from-internal-531c,2’ in macro ‘exten-vm’
== Spawn extension (macro-dial, s, 10) exited non-zero on ‘Local/110@from-internal-531c,2’
– Playing ‘queue-youarenext’ (language ‘en’)
– Told IAX2/VoicePulse21-1 in 77 their queue position (which was 1)
– Playing ‘custom/press1toleavemessage’ (language ‘en’)
– Started music on hold, class ‘default’, on IAX2/VoicePulse21-1[/code:1]

… and caller hears the music.
This got to be something very simple, but I am not experienced enough to see what is going on inside the Queue command.
Thanks a lot for any help.

::edited title to be more specific