Flag 'g' in Dail() does'nt work with agentcallbacklogin()

here i’ve come accross another different frustrating prob, & that is; when ever i use flag ‘g’ in dial() to dial an agent through [size=150]*[/size]'s ACD queue system (the agent for which has already been logged in through agentcallbacklogin() ) , it simply does’nt execute any apps below dial() but when ever i dial any normal sip-user with ‘g’ flag in dial(), it always works fine

my dial plan for agentcallbacklogin is:
[color=blue][agents]

exten => 100 , 1 , Wait()
exten => 100 , 2 , AgentCallbackLogin(100, s ,500@agents)

exten => 500 , 1 , Answer()
exten => 500 , 2 , Playback(connecting)[/color]
[color=red]exten => 500 , 3 , Dial(SIP/100,g)[/color]
[color=blue]exten => 500 , 4 , Playback(vm-goodbye)
exten => 500 , 5 , HangUp()[/color]

the control never goes to priority 4 & 5 when some one dials the queue which the agent-100 is a memeber of,… when the dial() terminates, the execution terminates simply

but in the following smple dial plan, it works just fine;
[color=blue]…
exten => 123, 1 , Answer()
exten => 123, 2 , Dial(SIP/555,g)
exten => 123, 3, layback(vm-goodbye)
exten => 123, 4 , HangUp()[/color]

where 555 is a normal sip-user that is just registered with *

anyone plz help me or suggest me something abt why ‘g’ is not workin in the above case, or suggest any other way to get down to Dial() app and execute the rest