proc toggle {v} { uplevel [concat set $v \[expr \[set $v\] ^ 1\]] } % set state 0 0 % toggle state 1 % toggle state 0 [RS] has this alternative: proc toggle varName { upvar 1 $varName var set var [expr {!$var}] } ---- [Category Example]