Popup menu causing delay

I've started noticing that when I try to access a popup menu which is populated by a function, Igor seems to freeze up for a few seconds if the popup currently has no items to display. For example, trying to access the popup in the following window when you're in a data folder containing no waves seems to stop you changing tabs for two to three seconds.

#pragma rtGlobals=1		// Use modern global access method.

Window example() : Panel
	PauseUpdate; Silent 1		// building window...
	NewPanel /W=(150,77,450,277)
	TabControl MainTab,pos={2,2},size={200,100},proc=tab_proc,title="MainTab"
	TabControl MainTab,tabLabel(0)="T0",tabLabel(1)="T1",value= 0
	tab_proc("",0)
EndMacro

Function tab_proc(name,tab)
	String name
	Variable tab
	PopupMenu popup0,pos={40,40},size={80,21},bodyWidth=80,disable=(!tab==0)
	PopupMenu popup0,mode=1,value= #"WaveList(\"*\", \";\", \"\")"
End


The same thing seems to happen when I populate the popup menu using a function of my own, rather than WaveList, which makes me think the problem is not with WaveList but the popup. Here's an example of a function used to populate a popup menu which does the same thing.

Function /S ListDimLabels()
	Wave inWave
	controlinfo /W=CASProc WaveSelect
	Wave inWave = $S_value
	Variable width = dimsize(inWave,1)
	Variable i
	String labelList = "No Selection"
	for(i=0;i<width;i+=1)
		labelList = labelList + ";" + GetDimLabel(inWave,1,i)
	endfor
	return labelList
End


I'm running Igor under Wine, so that may be part of the problem, but I get the feeling that it isn't. Anyway, can't test in Windows right now because Virtualbox is playing up.

Any ideas gratefully considered.