Apparently, OCall esi::YourObject.YourMethod work well when YourObject was previouly compiled (even if YourObject is not related at all with the calling object)
The problem is that, in interlaced objects, the compiler don't recognize YourObject.YourMethod, because it not read YourObject yet. If you change the order, YourObject became the problem because the compiler not read the other object yet.
I don't know if some kind of PROTO or externdef declaration can make the trick. More knowledge than mine is needed.
If there isn't a known solution, I will try, perhaps its posible the connection trough an ancestor.
Thanks. HSE