diff -Nur audacious-plugins-2.2-orig/src/neon/neon.c audacious-plugins-2.2/src/neon/neon.c --- audacious-plugins-2.2-orig/src/neon/neon.c 2009-11-22 23:49:53.000000000 +0100 +++ audacious-plugins-2.2/src/neon/neon.c 2010-09-13 18:37:53.000000000 +0200 @@ -963,6 +963,9 @@ gchar icy_metadata[NEON_ICY_BUFSIZE]; guchar icy_metalen; + if (h->eof) + return 0; + _ENTER; if (NULL == h->request) { @@ -1318,6 +1321,11 @@ newpos = h->pos + offset; break; case SEEK_END: + if (offset == 0) { + h->pos = content_length; + h->eof = TRUE; + return 0; + } newpos = content_length + offset; break; default: @@ -1374,6 +1382,7 @@ * Things seem to have worked. The next read request will start * the reader thread again. */ + h->eof = FALSE; _LEAVE 0; }