For now have pyrna_struct_as_srna look in the dict first for __rna__ before using PyDict_GetItemString. Somehow __rna__ is not calling the pyrna_struct_getattro function, python find it first. The only relyable way to get the rna from python currently is. bpy.types.SomeType.__dict__['__rna__']