According to the manual page for setAccessible() [1] the feature is available with 5.3.2, and I'm running 5.3.2-1ubuntu4.5 with Suhosin-Patch (cli) (built: Sep 17 2010 13:49:46) so I should be good to go. However, even the simplest test to make a protected or private method accessible fails. php > class Foo { protected function bar() { echo "foobar\n"; } } php > $m = new ReflectionMethod('Foo', 'bar'); php > $m->setAccessible(true); php > $foo = new Foo(); php > $foo->bar(); Fatal error: Call to protected method Foo::bar() from context '' in php shell code on line 1 I've tried creating the object first, getting to the ReflectionMethod via ReflectionClass::getMethod(), and making a public method inaccessible, but all fail. Has anyone used this feature? The reason I want to do this, in case anyone can suggest a work-around, is to allow direct unit testing of protected/private methods in classes. What I do now is have a function that eval()s a dynamic subclass with a __call() method that proxies to protected methods. This doesn't allow testing private methods, and it breaks if the class under test has a private/protected constructor. I can solve the second problem with some further hacking, but there's nothing I can do about exposing private methods temporarily. setAccessible() seems perfectly designed to do what I need. Thanks, David [1] http://php.net/manual/en/reflectionmethod.setaccessible.php -- David Harkness Senior Software Engineer High Gear Media