Index: marshal.c =================================================================== --- marshal.c (revision 325) +++ marshal.c (working copy) @@ -859,12 +859,14 @@ st_free_table(arg->encodings); arg->encodings = 0; } - if (arg->taint) { - OBJ_TAINT(arg->str); + if (RBASIC(arg->str)->flags) { + if (arg->taint) { + OBJ_TAINT(arg->str); + } + if (arg->untrust) { + OBJ_UNTRUST(arg->str); + } } - if (arg->untrust) { - OBJ_UNTRUST(arg->str); - } } /*