In an itcl class, all instances of a class share the same variable for any variable declared common. That is changing a common variable in one class instance changes the value for all class instances. Common variables are created (and can be used) at the time that the class is declared. package require Itcl itcl::class test { common v1 0 common v2 0 puts "Initial v1 and v2 for class test is $v1 $v2" method setv1 {v} { set v1 $v } method setv2 {v} { set v2 $v } method showvalues {} { puts "$this has commmon values $v1 $v2" } } test a test b b setv1 2 b showvalues a showvalues # then set v2 via the a object a setv2 3.14 b showvalues a showvalues Both a and b report the same values for v1 and v2 regardless of which object was used to set the value.