Ok... And now that I stripped WeakRefs from my code (Matz just confirmed I found a bug regarding how they work with Marshal) the code Marshals perfectly. But YAML still doesn't work. If anyone wants me to, I can knock together a stripped down version of my code that should still show the problem. If there are no responses here, then in a couple of days I'll mail the library author.