Hi! Appears that the following code behaves differently in Itcl 3 and 4:

itcl::class a {
    constructor {args} {}
    public method a {}
}

itcl::body a::constructor {args} {
    puts "a::constructor $args"
    b ::newb
}

itcl::body a::a {} {
    puts "a::a"
}

itcl::class b {
    constructor {args} {}
}

itcl::body b::constructor {args} {
    puts "b::constructor $args"
    a::a
}

a newa

(it's a minimal example which reproduces the problem). Specifically, in Itcl 3 the code works fine and prints

a::constructor
b::constructor
a::a

but in Itcl 4 it emits the error:

a::constructor
b::constructor
bad option "a": should be one of...
  newb cget -option
  newb configure ?-option? ?value -option value...?
  newb isa className
    while executing
"a::a"
    while constructing object "::newb" in ::b::constructor (body line 4)
    invoked from within
"::itcl::parser::handleClass b ::b ::newb"
    invoked from within
"b ::newb"
    while constructing object "::newa" in ::a::constructor (body line 4)
    invoked from within
"::itcl::parser::handleClass a ::a newa"
    invoked from within
"a newa"
    (file "test.tcl" line 28)

For some reason a::a tries to find method a in class b and fails.