This now works :-)
The challenge is still open, I intentionally stopped before completing the feature, and there is a failing test in the RecusriveMocks fixture that you can start from.
And just to give you an idea about what I am talking about, please run this and examine the results:
svn diff https://rhino-tools.svn.sourceforge.net/svnroot/rhino-tools/trunk -r 1682:1683
A really cool web view of them is here.