Index: lib/MP3/Info.pm =================================================================== --- lib/MP3/Info.pm (revision 16235) +++ lib/MP3/Info.pm (working copy) @@ -999,6 +999,11 @@ # raw_v2 = 1 => don't parse # raw_v2 = 2 => do split into arrayrefs + # Strip off any trailing NULs, which would indicate an empty + # field and cause an array with no elements to be created. + $data =~ s/\x00+$//; + + if ($data =~ /\x00/ && ($raw_v2 == 2 || $raw_v2 == 0)) { # There are embedded nuls in the string, which means an ID3v2.4 Index: Slim/Formats/MP3.pm =================================================================== --- Slim/Formats/MP3.pm (revision 16235) +++ Slim/Formats/MP3.pm (working copy) @@ -266,7 +266,16 @@ # We only want a 4-digit year if ( defined $info->{'YEAR'} ) { - ($info->{'YEAR'}) =~ s/.*(\d\d\d\d).*/$1/; + my $year = $info->{'YEAR'}; + + # In the case where multiple YEAR elements are + # present (eg multi-value ID3v2.4) we only use + # the first. + $year = $year->[0] if (ref $year eq 'ARRAY'); + + if ($year =~ /(\d\d\d\d)/) + { $year = $1; } + $info->{'YEAR'} = $year; } return $info;