Since the call A::foo() is completely defined and that no "fall back" occurs, I guess "A" is more expected as a result of this script. Your patch will return B. I discussed this matter quite heavily on #php.pecl and the expectations were also that "A" should get returned here.
I think you are right, static:: is supposed to mean the context of the call, so if A::foo() is called then static means A.
-- Stanislav Malyshev, Zend Software Architect [EMAIL PROTECTED] http://www.zend.com/ (408)253-8829 MSN: [EMAIL PROTECTED] -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php