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