Recently on comp.lang.tcl, Tom Wilkason wrote: "... Incidentally, for backwards compatibility you can have lset for older tcl versions with the following code run during script processing:" proc K {a b} {set a} if {[string equal [info command lset] {}]} { proc lset {listName index val} { upvar $listName list set list [lreplace [K $list [set list {}]] $index $index $val] } } ;# end if