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/[email protected],2”, “exten-vm|110|110”) in new stack
– Executing Macro(“Local/[email protected],2”, “user-callerid”) in new stack
– Executing GotoIf(“Local/[email protected],2”, “1?report”) in new stack
– Goto (macro-user-callerid,s,9)
– Executing NoOp(“Local/[email protected],2”, "Using CallerID "****" <>") in new stack
– Executing Set(“Local/[email protected],2”, “FROMCONTEXT=exten-vm”) in new stack
– Executing Set(“Local/[email protected],2”, “VMBOX=110”) in new stack
– Executing Set(“Local/[email protected],2”, “EXTTOCALL=110”) in new stack
– Executing Set(“Local/[email protected],2”, “CFUEXT=”) in new stack
– Executing Set(“Local/[email protected],2”, “RT=15”) in new stack
– Executing Macro(“Local/[email protected],2”, “record-enable|110|IN”) in new stack
– Executing GotoIf(“Local/[email protected],2”, “0 > 0?2:4”) in new stack
– Goto (macro-record-enable,s,4)
– Executing AGI(“Local/[email protected],2”, “recordingcheck|20060922-111440|1158938080.248”) in new stack
– Launched AGI Script /var/lib/asterisk/agi-bin/recordingcheck
– Called Local/[email protected]
– 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/[email protected],2”, “wav49|20060922-111440-1158938080.248| mb”) in new stack
– Executing GotoIf(“Local/[email protected],2”, “1?dolocaldial|1”) in new stack
– Goto (macro-exten-vm,dolocaldial,1)
– Executing Macro(“Local/[email protected],2”, “dial||tr|110”) in new stack
– Executing AGI(“Local/[email protected],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/[email protected],2”, “SIP/110||tr”) in new stack
– Called 110
– Local/[email protected],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/[email protected],2’ in macro ‘dial’
== Spawn extension (macro-dial, s, 10) exited non-zero on ‘Local/[email protected],2’ in macro ‘exten-vm’
== Spawn extension (macro-dial, s, 10) exited non-zero on ‘Local/[email protected],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