--- a/field.c.orig 2008-05-05 09:49:15.000000000 -0400 +++ b/field.c 2008-05-05 09:49:25.000000000 -0400 @@ -291,7 +291,7 @@ end = *ptr + length; - while (end - *ptr > 0) { + while (end - *ptr > 0 && **ptr != '\0') { ucs4 = id3_parse_string(ptr, end - *ptr, *encoding, 0); if (ucs4 == 0) goto fail;