diff -Nur taglib-1.6.1-orig/taglib/fileref.cpp taglib-1.6.1/taglib/fileref.cpp --- taglib-1.6.1-orig/taglib/fileref.cpp 2009-10-24 14:45:58.000000000 +0200 +++ taglib-1.6.1/taglib/fileref.cpp 2009-11-06 13:16:51.055129147 +0100 @@ -227,6 +227,7 @@ File *file = new Ogg::FLAC::File(fileName, readAudioProperties, audioPropertiesStyle); if (file->isValid()) return file; + delete file; return new Ogg::Vorbis::File(fileName, readAudioProperties, audioPropertiesStyle); } if(ext == "FLAC") diff -Nur taglib-1.6.1-orig/taglib/flac/flacfile.cpp taglib-1.6.1/taglib/flac/flacfile.cpp --- taglib-1.6.1-orig/taglib/flac/flacfile.cpp 2009-07-12 23:53:18.000000000 +0200 +++ taglib-1.6.1/taglib/flac/flacfile.cpp 2009-11-06 13:16:42.613128986 +0100 @@ -416,8 +416,13 @@ // Found the vorbis-comment if(blockType == VorbisComment) { - d->xiphCommentData = readBlock(length); - d->hasXiphComment = true; + if(!d->hasXiphComment) { + d->xiphCommentData = readBlock(length); + d->hasXiphComment = true; + } + else { + debug("FLAC::File::scan() -- multiple Vorbis Comment blocks found, using the first one"); + } } nextBlockOffset += length + 4;