Index: library/nx/nx.tcl =================================================================== diff -u -rbae2fc790df28562c0d80e54bf83ef0d97de250d -rc89e53225ec035363024da97f64ad61e70352b36 --- library/nx/nx.tcl (.../nx.tcl) (revision bae2fc790df28562c0d80e54bf83ef0d97de250d) +++ library/nx/nx.tcl (.../nx.tcl) (revision c89e53225ec035363024da97f64ad61e70352b36) @@ -1620,19 +1620,24 @@ if {[::nsf::var::exists $object ${:name}] && !$nocomplain} { error "object $object has already an instance variable named '${:name}'" } - set options [:getParameterOptions -withMultiplicity true] + set options [:getParameterOptions -forValueCheck true -withMultiplicity true] if {[llength $options]} { ::nsf::is -complain [join $options ,] $value } - - set traces [::nsf::directdispatch $object -frame object ::trace info variable ${:name}] + + set restoreCmd "" + set traces [::nsf::directdispatch $object \ + -frame object ::trace info variable ${:name}] foreach trace $traces { lassign $trace ops cmdPrefix - ::nsf::directdispatch $object -frame object ::trace remove variable ${:name} $ops $cmdPrefix - append restore "[list ::nsf::directdispatch $object -frame object ::trace add variable ${:name} $ops $cmdPrefix]\n" + ::nsf::directdispatch $object \ + -frame object ::trace remove variable ${:name} $ops $cmdPrefix + append restoreCmd "[list ::nsf::directdispatch $object \ + -frame object ::trace add variable \ + ${:name} $ops $cmdPrefix]\n" } ::nsf::var::set $object ${:name} ${:default} - if {[info exists restore]} { {*}$restore } + {*}$restoreCmd } ::nx::VariableSlot protected method getParameterOptions {