 +      }
 +    }
 +    else {
-+      lprintf("non-header (normal. ogg_packet)\n");
-+      /*copy the ogg_packet struct and the sum, correct the adress of the packet*/
-+      xine_fast_memcpy (&this->op, buf->content, sizeof(ogg_packet));
-+      this->op.packet=this->packet;
-+
-+      readin_op (this, buf->content + sizeof(ogg_packet), buf->size - sizeof(ogg_packet) );
++      /* no first byte on data packets, we remember what headers had */
++      if (this->raw) {
++        lprintf("non-header (without ogg_packet)\n");
++        this->kp.data=this->packet;
++        this->kp.nbytes=0;
++        readin_op (this, buf->content, buf->size );
++      }
++      else {
++        lprintf("non-header (normal. ogg_packet)\n");
++        /*copy the ogg_packet struct and the sum, correct the adress of the packet*/
++        xine_fast_memcpy (&this->op, buf->content, sizeof(ogg_packet));
++        this->op.packet=this->packet;
++        readin_op (this, buf->content + sizeof(ogg_packet), buf->size - sizeof(ogg_packet) );
++      }
 +    }
 +    /*read the rest of the data*/
 +

+xineplug_decode_spukate_la_CFLAGS = $(VISIBILITY_FLAG) $(KATE_CFLAGS)
+xineplug_decode_spukate_la_LDFLAGS = $(xineplug_ldflags)
--- /dev/null	2008-04-05 19:24:09.000000000 +0100
+++ ../xine-lib-1.1.12/src/libspukate/xine_kate_decoder.c	2008-07-20 14:15:20.000000000 +0100
@@ -0,0 +1,1843 @@
+/*
+ * Copyright (C) 2000-2003 the xine project
+ * 

     } else {
       lprintf("unknown codec\n");
     }
@@ -1476,7 +1535,12 @@
           this->num_audio_tracks++;
           break;
         case MATROSKA_TRACK_SUBTITLE:
-          track->fifo = this->stream->video_fifo;
+          /* allow use as lyrics - only kate will actually work this way for now,
+             see comments in audio_decoder.c */
+          if (this->stream->video_out)
+            track->fifo = this->stream->video_fifo;
+          else
+            track->fifo = this->stream->audio_fifo;
           track->buf_type |= this->num_sub_tracks;
           this->num_sub_tracks++;
           break;
diff -x xine-config -x 'configure.h*' -x config.guess -x config.sub -x configure -x SlackBuild -x '*.m4' -x ltmain.sh -x libtool -x Makefile -x Makefile.in -ru xine-lib-1.1.12/src/demuxers/demux_ogg.c ../xine-lib-1.1.12/src/demuxers/demux_ogg.c
--- xine-lib-1.1.12/src/demuxers/demux_ogg.c	2008-04-06 19:29:07.000000000 +0100
+++ ../xine-lib-1.1.12/src/demuxers/demux_ogg.c	2008-07-20 15:03:18.000000000 +0100
