Index: library/nx/nx.tcl =================================================================== diff -u -N -r6b570a0b4a22c8cc62e30454b8ca7610d1b4bc6c -rf5bba52ec263179be12a65a00a7d4f2282c445d2 --- library/nx/nx.tcl (.../nx.tcl) (revision 6b570a0b4a22c8cc62e30454b8ca7610d1b4bc6c) +++ library/nx/nx.tcl (.../nx.tcl) (revision f5bba52ec263179be12a65a00a7d4f2282c445d2) @@ -2508,12 +2508,9 @@ # Evaluate the command under catch to ensure reverse mapping # of "new" # - if {[catch [list ::apply [list {} $cmds $object]] errorMsg]} { - set errorCode $::errorCode - set errorOccured 1 - } else { - set errorOccured 0 - } + set errorOccured [catch \ + [list ::apply [list {} $cmds $object]] \ + result errorOptions] # # Remove the mapped "new" method, if it was added above @@ -2526,8 +2523,10 @@ # Report the error with message and code when necessary # if {$errorOccured} { - return -code error -errorcode $errorCode $errorMsg + dict incr errorOptions -level + dict unset errorOptions -errorinfo } + return -options $errorOptions $result } else { ::apply [list {} $cmds $object]