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

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(\"*\", \";\", \"\")"

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"
        labelList = labelList + ";" + GetDimLabel(inWave,1,i)
    return labelList

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.