       return
 
     # build list of tracks from msg
-    mpd_tracks = {}
-    current_track = {}
+    mpd_tracks = []
+    current_track = null
     flush_current_track = ->
-      return if current_track.Id == undefined
-      mpd_tracks[current_track.Id] = current_track
+      if current_track != null
+        mpd_tracks.push(current_track)
       current_track = {}
     for line in msg.split("\n")
       [key, value] = line.split(": ")

          @raiseEvent 'onStatusUpdate'
          return

        # there's only one but we'll loop anyway since it's an object
        for _, mpd_track of mpd_tracks
          id = parseInt(mpd_track.Id)
          pos = parseInt(mpd_track.Pos)



    # convert to our track format and add to cache
    track_table = @library.track_table
    for mpd_track in mpd_tracks
      track = @getOrCreateTrack(mpd_track.file)
      $.extend track,
        name: mpd_track.Title
