From: Eric Wong Date: 2014-03-19T16:21:24+09:00 Subject: [ruby-core:61585] Re: [ruby-trunk - Bug #9652] [Open] Marshal doesn't dump/load Time#zone correctly with too many time object I cannot reproduce the problem here, however it could be the lack of reference for GC. Can you add this rb_ivar_set call? --- a/time.c +++ b/time.c @@ -4828,6 +4828,7 @@ end_submicro: ; } if (!NIL_P(zone)) { tobj->vtm.zone = RSTRING_PTR(zone); + rb_ivar_set(str, id_zone, zone); } return time; Also at: git://80x24.org/ruby.git time-load-zone http://bogomips.org/ruby.git/patch?id=9418df96145