PHP está lidando incorretamente com minha chamada estática

Estou com um problema no PHP 5.3. Eu preciso chamar um método usando__callStatic, mas se eu usá-lo em um objeto instanciado, o PHP chama__call em vez de

Acima de um exemplo da vida real:

<?php

    class A {
        function __call($method, $args){
            // Note: $this is defined!
            echo "Ops! Don't works. {$this->c}";
        }

        static function __callStatic($method, $args){
            echo 'Fine!';
        }
    }

    class B extends A {
        public $c = 'Real Ops!';

        function useCallStatic(){
            static::foo();
            // === A::foo();
            // === B::foo();
        }
    }

    $foo = new B();
    $foo->useCallStatic();

    // This works:
    // B::foo();

?>

Impressões: Ops! Não funciona. Operações reais!

Note que eu chamouseCallStatic a partir de umnew B(). Se eu ligar diretamente, funciona bem comoB::foo().

O que posso fazer para que funcione bem?

questionAnswers(5)

yourAnswerToTheQuestion