diff -ruN mpdscribble-0.2.10/debian/changelog mpdscribble-0.2.10+http/debian/changelog
--- mpdscribble-0.2.10/debian/changelog	2006-09-08 22:11:14.334090048 -0400
+++ mpdscribble-0.2.10+http/debian/changelog	2006-09-08 22:13:16.533727048 -0400
@@ -1,3 +1,9 @@
+mpdscribble (0.2.10-1+streamable) unstable; urgency=low
+
+  * Added a hack to handle streamed tracks correctly.
+
+ -- Bart Trojanowski <bart@jukie.net>  Fri,  8 Sep 2006 22:12:49 -0400
+
 mpdscribble (0.2.10-1) unstable; urgency=low
 
   * New usptream version (Closes: #369703).
diff -ruN mpdscribble-0.2.10/as.h mpdscribble-0.2.10+http/as.h
--- mpdscribble-0.2.10/as.h	2006-05-28 07:22:19.000000000 -0400
+++ mpdscribble-0.2.10+http/as.h	2006-09-08 21:49:09.739308048 -0400
@@ -49,5 +49,6 @@
 unsigned int as_sleep (void);
 void as_save_cache (void);
 
+char* as_timestamp (void);
 
 #endif /* AS_H */
diff -ruN mpdscribble-0.2.10/mpdscribble.c mpdscribble-0.2.10+http/mpdscribble.c
--- mpdscribble-0.2.10/mpdscribble.c	2006-09-08 22:11:14.334090048 -0400
+++ mpdscribble-0.2.10+http/mpdscribble.c	2006-09-08 21:56:28.526730548 -0400
@@ -23,6 +23,9 @@
 
 #include <stdlib.h>
 #include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+#include <time.h>
 
 #include "file.h"
 #include "misc.h"
@@ -60,7 +63,7 @@
 int
 main (int argc, char** argv)
 {
-  lmc_song song;
+  lmc_song song, streaming_song;
 
   int last_id = -1;
   int last_el = 0;
@@ -69,9 +72,13 @@
   int submitted = 1;
   int was_paused = 0;
   int next_save = 0;
+  int streaming_time = 0;
+  char * streaming_start = NULL;
   char mbid[MBID_BUFFER_SIZE];
   FILE * log;
 
+  memset (&streaming_song, 0, sizeof (streaming_song));
+
   /* apparantly required for regex.h, which
      is used in file.h */
   program_name = argv[0];
@@ -136,6 +143,27 @@
       /* new song. */
       if (song.id != last_id)
         {
+          // song change, did we have a streaming_song queued up?
+          if (streaming_time) {
+              int q;
+
+              streaming_song.time = time(NULL) - streaming_time;
+
+              q = as_songchange (streaming_song.file, streaming_song.artist, streaming_song.title,
+                                     streaming_song.album, mbid, streaming_song.time, streaming_start);
+
+              if (q != -1)
+                notice ("added streaming (%s - %s) to submit queue at position %i.",
+                        streaming_song.artist, streaming_song.title, q);
+
+              streaming_time = 0;
+              free (streaming_start);
+              free (streaming_song.file);
+              free (streaming_song.artist);
+              free (streaming_song.title);
+              free (streaming_song.album);
+          }
+
           if (song.artist && song.title)
             notice ("new song detected (%s - %s)", song.artist, song.title);
           else
@@ -157,14 +185,30 @@
                 notice ("mbid is %s.", mbid);
             }
 
-          if (song.time < 30)
-            notice ("however, song is too short, not submitting.");
+          if (0 == strncmp (song.file, "http://", 7)) {
+            // this is a streamed song
+            streaming_song.file   = strdup2 (song.file);
+            streaming_song.artist = strdup2 (song.artist);
+            streaming_song.title  = strdup2 (song.title);
+            streaming_song.album  = strdup2 (song.album);
+
+            streaming_time = time(NULL);
+            streaming_start = as_timestamp (); 
+
+            notice ("streaming song (%s - %s) detected",
+                    streaming_song.artist, streaming_song.title);
+
+          } else if (song.time>=0 && song.time < 30)
+            notice ("however, song is too short (%d), not submitting.",
+                            song.time);
+
           /* don't submit the song which is being played when we start,.. too
              many double submits when restarting the client during testing in
              the first half of a song ;) */
           else if (elapsed > MAX_SKIP_ERROR*2)
-            notice ("skipping detected, not submitting.");
-          else
+            notice ("skipping detected (%d), not submitting.", elapsed);
+
+          else 
             submitted = 0;
         }
       /* not a new song, so check for skipping. */
