Killing floating panels

Is it possible to kill a floating panel created by a user function with a user function? The panel is created with the /K=1 flag to prevent dialogs but the DoWindow/K command fails if the panel is designated /FLT=1. No errors are thrown, Igor just doesn't do anything.

Running aTest(0) from the sample code below produces a progress window which closes upon reaching 100% or upon the Abort button being clicked. If you run aTest(1) instead to make the panel a floating one, the progress window remains even though the abort is handled correctly. (At least on my machine running Igor 6.2.2.2/WinXP)

How would I kill the panel if I used /FLT=2 instead?

Function aTest( float)
    Variable float
    string pname    = NewTestProgressWindow( float )
    Variable i,imax= 1000
    for(i=0;i<=imax;i+=1)
        Variable t0= ticks
        do
        while( ticks < (t0+1) )
        UpdateTestProgressWindow( pname, i, imax)
    endfor
    DoWindow/K $pname
End

Function/S NewTestProgressWindow( float )
    variable float
    string myname = UniqueName("progwin", 9, 0)
    If (float)
        NewPanel/K=1/N=$myname/FLT=1/W=(629,345,929,442) as "Please wait..."
    else
        NewPanel/K=1/N=$myname/W=(629,345,929,442) as "Please wait..."
    endif
    ValDisplay vdProgress,pos={5,5},size={290,20},limits={0,1,0},barmisc={0,0},mode= 3,value= _NUM:0
    TitleBox titleProgress,pos={5,30},size={54,13},frame=0,title="0/0 complete"
    Button btnAbort,pos={245,26},size={50,20},help={"Click to end procedure execution"},title="Abort"
    SetActiveSubwindow _endfloat_
    DoUpdate/W=$myname/E=1
    return myname
End

Function UpdateTestProgressWindow( name, val1, val2 )
    string name             // name of progress window to affect
    variable val1, val2     // status values
   
    DoWindow $name
    If ( !V_flag )
        return -1
    endif
   
    ValDisplay vdProgress,win=$name,value=_NUM: (val1/val2)
    TitleBox titleProgress,win=$name,title= num2istr(val1)+"/"+num2istr(val2)+" complete"
    DoUpdate/W=$name/E=1
    If ( V_flag == 2 )
        DoWindow/K $name
        Abort
    endif
   
    If ( val1/val2 >= 1 )
        DoWindow/K $name
    endif
    return 0
End