As it is, this reintroduces the same bug that da8c7a5bb92b928c19918632d8cb8a06d0ea747d fixes.

The `method_exists()` check should be moved *inside* the if statement:

    if (isset($this->_objects[$class]))
    {
        if (method_exists($this->_objects[$class], $function))
        {
            $this->_objects[$class]->$function($params);
        }
        else
        {
            return $this->_in_progress = FALSE;
        }
    }