Cool,  I think If I accept the pull request it will bring in any new items you have added since making the request as well, (at least that was what it did for me a few months back).  I just had a quick look at the CPP Plugin stuff and two things came to mind: (1) the reference counter starts off at 1 so its possible that the CppTPGDescriptorWrapper is just using that copy; this is probably a bad design decision which we should probably address, and (2) I think the CppTPGDescriptorWrapper may not be needed anymore since the Delete descriptor library function has been removed though this will require a clearer mind that one that has been at work all day.  I think I will just accept your request (after I build/run test it) and have a look at improving the code on the weekend.