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