diff -urp eyeD3-0.6.17.OLD/src/eyeD3/frames.py eyeD3-0.6.17/src/eyeD3/frames.py --- eyeD3-0.6.17.OLD/src/eyeD3/frames.py 2009-02-01 21:54:52.000000000 -0600 +++ eyeD3-0.6.17/src/eyeD3/frames.py 2011-08-06 12:10:48.714663188 -0500 @@ -2152,7 +2152,10 @@ class FrameSet(list): def splitUnicode(data, encoding): if encoding == LATIN1_ENCODING or encoding == UTF_8_ENCODING: - return data.split("\x00", 1); + ret = data.split("\x00", 1); + if len(ret) != 2: + ret.append("") + return ret elif encoding == UTF_16_ENCODING or encoding == UTF_16BE_ENCODING: # Two null bytes split, but since each utf16 char is also two # bytes we need to ensure we found a proper boundary.