Not sure if this will fit the bill, but here's what I threw together using an array: package require Iwidgets proc getMenu {} { global members set _selected [.optionlist get] puts "user id is [lindex [array get members $_selected ] 1]" } pack [iwidgets::optionmenu .optionlist -command getMenu] array set members {John 0 Jane 1 Jack 2 Janet 3} foreach user [array names members] { .optionlist insert end $user } ---- [RS] wonders what the bill was, or who Tim is... [LV] noticed that this page links to one of the question pages, and so assumes that Tim must have asked a question back in December and ''fits the bill'' is an English expression meaning ''this should meet the requirements that you have stated''.