 +                        ogg_stream_pagein(&kst, &og);
 +                        ret = kate_high_decode_init(&k);
 +                        if (ret < 0) {
-+                                /* failed to decode Kate ID header */
++                                /* failed to init libkate for decoding */
++                                ogg_stream_clear(&kst);
++                        }
++                        else {
++                                if (ogg_stream_packetout(&kst, &op) > 0) {
++                                        kate_packet kp;
++                                        kate_packet_wrap(&kp, op.bytes, op.packet);
++                                        ret = kate_high_decode_packetin(&k, &kp, NULL);
++                                        if (ret < 0) {
++                                                /* failed to decode Kate ID header */
++                                                kate_high_decode_clear(&k);
++                                                ogg_stream_clear(&kst);
++                                        }
++                                        else {
++                                                if (!vorbis_cfg.show_all_kate_streams && strcmp(k.ki->category, "lyrics")) {
++                                                        /* not lyrics, and we're not asked to play other streams */
++                                                        kate_high_decode_clear(&k);
++                                                        ogg_stream_clear(&kst);
++                                                }
++                                                else {
++                                                        kst_initialized = 1;
++                                                        kate_initialized = 1;
++                                                }
++                                        }
++                                }
++                                else {
++                                        /* the Initial Kate page did not contain a Kate BOS header */
++                                        kate_high_decode_clear(&k);
++                                        ogg_stream_clear(&kst);
++                                }
 +                        }
 +                }
 +                else {
 +                        ogg_stream_pagein(&kst, &og);
 +                }
 +
-+                while (ogg_stream_packetout(&kst, &op) > 0) {
++                if (kate_initialized) while (ogg_stream_packetout(&kst, &op) > 0) {
 +                        const kate_event *ev = NULL;
 +                        kate_packet kp;
 +                        kate_packet_wrap(&kp, op.bytes, op.packet);

 	}
 	output_opened = FALSE;
 	if (!output_error)
@@ -774,6 +949,7 @@
 		  "Jorn Baayen <jorn@nl.linux.org>\n"
 		  "Haavard Kvaalen <havardk@xmms.org>\n"
 		  "Gian-Carlo Pascutto <gcp@sjeng.org>\n\n"

 	/* Buttons */
 
 	bbox = gtk_hbutton_box_new();
diff -x config.h.in -x configure -x aclocal.m4 -x Makefile -x Makefile.in -ru xmms-1.2.11-original/Input/vorbis/fileinfo.c xmms-1.2.11/Input/vorbis/fileinfo.c
--- xmms-1.2.11-original/Input/vorbis/fileinfo.c	2005-05-15 01:01:20.000000000 +0100
+++ xmms-1.2.11/Input/vorbis/fileinfo.c	2008-10-21 20:36:55.000000000 +0100
@@ -33,6 +33,9 @@
