Bug in with-statement?

According to the docs, the scope chain used by the with statement to resolve identifiers is: innermost with-statement -> outermost with-statement -> activation object -> etc. If this would be true, the following code should output “propOfMyObject”:

var foo:String = "propOfActivationObject";
var myObject:Object = {foo:"propOfMyObject"};
with (myObject) {
    trace(foo); //outputs: "propOfActivationObject"
}

But it doesn’t. Instead the local variable is shadowing the property in myObject. It seems like the scope chain rather is: activation object -> innermost with-statement -> outermost with-statement -> etc. Which means either the docs or the with statement is falsy. Am I right?