Index: xmms-musepack/branches/r2d/configure
===================================================================
--- xmms-musepack/branches/r2d/configure	(revision 127)
+++ xmms-musepack/branches/r2d/configure	(revision 144)
@@ -20851,5 +20851,5 @@
 
 
-for ac_header in mpcdec/mpc_types.h
+for ac_header in mpc/mpc_types.h
 do
 as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
Index: xmms-musepack/branches/r2d/configure.ac
===================================================================
--- xmms-musepack/branches/r2d/configure.ac	(revision 127)
+++ xmms-musepack/branches/r2d/configure.ac	(revision 144)
@@ -34,5 +34,5 @@
 )
 
-AC_CHECK_HEADERS(mpcdec/mpc_types.h,,AC_MSG_ERROR([*** Libmpcdec not installed - please install first ***]))
+AC_CHECK_HEADERS(mpc/mpc_types.h,,AC_MSG_ERROR([*** Libmpcdec not installed - please install first ***]))
 
 AC_DEFUN([AC_HAVE_TAGLIB],
Index: xmms-musepack/branches/r2d/src/Makefile.am
===================================================================
--- xmms-musepack/branches/r2d/src/Makefile.am	(revision 127)
+++ xmms-musepack/branches/r2d/src/Makefile.am	(revision 144)
@@ -9,5 +9,5 @@
 
 libmpc_la_SOURCES = equalizer.cpp libmpc.cpp
-libmpc_la_LDFLAGS = -lmpcdec -avoid-version
+libmpc_la_LDFLAGS = -avoid-version -lmpcdec
 noinst_HEADERS = equalizer.h libmpc.h
 
Index: xmms-musepack/branches/r2d/src/Makefile.in
===================================================================
--- xmms-musepack/branches/r2d/src/Makefile.in	(revision 127)
+++ xmms-musepack/branches/r2d/src/Makefile.in	(revision 144)
@@ -160,5 +160,5 @@
 
 libmpc_la_SOURCES = equalizer.cpp libmpc.cpp
-libmpc_la_LDFLAGS = -lmpcdec -avoid-version
+libmpc_la_LDFLAGS = -avoid-version -lmpcdec
 noinst_HEADERS = equalizer.h libmpc.h
 subdir = src
Index: xmms-musepack/branches/r2d/src/config.h.in
===================================================================
--- xmms-musepack/branches/r2d/src/config.h.in	(revision 127)
+++ xmms-musepack/branches/r2d/src/config.h.in	(revision 144)
@@ -13,6 +13,6 @@
 #undef HAVE_MEMORY_H
 
-/* Define to 1 if you have the <mpcdec/mpc_types.h> header file. */
-#undef HAVE_MPCDEC_MPC_TYPES_H
+/* Define to 1 if you have the <mpc/mpc_types.h> header file. */
+#undef HAVE_MPC_MPC_TYPES_H
 
 /* Define to 1 if stdbool.h conforms to C99. */
Index: xmms-musepack/branches/r2d/src/libmpc.cpp
===================================================================
--- xmms-musepack/branches/r2d/src/libmpc.cpp	(revision 127)
+++ xmms-musepack/branches/r2d/src/libmpc.cpp	(revision 144)
@@ -801,11 +801,12 @@
 
 	int counter = 2 * track.sampleFreq / 3;
-	unsigned status = 1;
+	int status = 0;
     while (isAlive())
     {
         if (getOffset() != -1)
         {
-//             mpc_decoder_seek_seconds(decoder, mpcDecoder.offset);
+			mpc_demux_seek_second(demux, mpcDecoder.offset);
             setOffset(-1);
+			status = 0;
         }
 
@@ -813,5 +814,5 @@
         short iPlaying = MpcPlugin.output->buffer_playing()? 1 : 0;
         int iFree = MpcPlugin.output->buffer_free();
-        if (!mpcDecoder.isPause &&  iFree >= ((1152 * 4) << iPlaying) && status != 0)
+        if (!mpcDecoder.isPause &&  iFree >= ((1152 * 4) << iPlaying) && status != -1)
         {
 			status = processBuffer(sampleBuffer, xmmsBuffer, *demux);
@@ -829,5 +830,5 @@
         {
 			lockRelease();
-			if (!mpcDecoder.isPause && status == 0 && MpcPlugin.output->output_time() == 0)
+			if (!mpcDecoder.isPause && status == -1 && MpcPlugin.output->output_time() == 0)
 				break;
             xmms_usleep(100000);
@@ -845,4 +846,7 @@
 	info.buffer = sampleBuffer;
 	mpc_demux_decode(&demux, &info);
+
+	if (info.bits == -1) return -1; // end of stream
+
     copyBuffer(sampleBuffer, xmmsBuffer, info.samples);
 
