I've just submitted a new patch for http://python.org/sf/576101
I'll review it when I've got time.
It passes regrtest but causes test_gc to leak 20 objects. 13 from test_finalizer_newclass and 7 from test_del_newclass. These leaks go away if test_saveall is skipped. I've tried earlier versions of this patch (which were ok at the time) and they now create this leak too.
Some change since the last time I worked on interning must have caused this. Either this change reveals a bug in my patch or my patch reveals a subtle bug in the GC.
I don't know why it interacts with GC logic because strings are non-gc objects. I've tried to untrack the interned dictionary because it plays dirty tricks with refcounts but it doesn't change the symptom.
I've seen this too! But only when I run the full test suite, not when I run test_gc in isolation. I made a number of small changes to the GC code, I'll have to roll them back one at a time to see which one caused this -- and then look for a solution. :-( --Guido van Rossum (home page: http://www.python.org/~guido/)