--- sourcemage/src/sharpmusique-1.0/src/SharpMusique.cs	2005-09-17 02:44:11.000000000 +0200
+++ Desktop/SharpMusique.cs	2006-06-26 16:12:08.000000000 +0200
@@ -526,10 +526,18 @@ class SharpMusique
             string strSongName;
             string strExplicit = String.Empty;
 
-            Hashtable meta = dict[ "metaData" ] != null ?
-                             (Hashtable)dict[ "metaData" ] : dict;
+            Hashtable meta;
+
+	    if( dict[ "metaData" ] != null ) {
+		meta = (Hashtable)dict[ "metaData" ];
+	    } else if( dict[ "metadata" ] != null ) {
+		meta = (Hashtable)dict[ "metadata" ];
+	    } else {
+		meta = dict;
+	    }
+	    
+	    strSongName = (string)meta[ "itemName" ];
 
-            strSongName = (string)meta[ "songName" ];
             strTime = TimeSpan.FromSeconds(
                 (int)meta[ "duration" ] / 1000 ).ToString();
             if( strTime.StartsWith( "00:" ) )
@@ -613,11 +621,18 @@ class SharpMusique
 
         if( song[ "downloadKey" ] == null )
         {
-            Hashtable meta = song[ "metaData" ] != null ?
-                             (Hashtable)song[ "metaData" ] : song;
+            Hashtable meta;
 
             PurchaseDialog dlg = new PurchaseDialog( MainWindow );
 
+	    if( song[ "metaData" ] != null ) {
+		    meta = (Hashtable)song[ "metaData" ];
+	    } else if( song[ "metadata" ] != null ) {
+		    meta = (Hashtable)song[ "metadata" ];
+	    } else {
+		    meta = song;
+	    }
+
             if( song[ "isAlbum" ] != null && (bool)song[ "isAlbum" ] == true )
             {
                 dlg.Title = "*";
@@ -625,7 +640,7 @@ class SharpMusique
             }
             else
             {
-                dlg.Title = (string)meta[ "songName" ];
+                dlg.Title = (string)meta[ "itemName" ];
                 dlg.Artist = (string)meta[ "artistName" ];
             }
             dlg.Album = (string)meta[ "playlistName" ];
@@ -696,15 +711,12 @@ class SharpMusique
                 RunOnMainThread.Run( this, "DoStatusbarUpdate",
                     new object[] { cidProgress, "Downloading", 2 } );
 
-                Hashtable meta = song[ "metaData" ] != null ?
-                                 (Hashtable)song[ "metaData" ] : song;
+                Hashtable meta;
 
                 byte [] sb = Store.DownloadSong( song,
                     new FairStore.Progress( DoProgressUpdate ) );
 
-                string strFileName = String.Format( "{0} - {1} - {2}.m4a",
-                    meta[ "playlistArtistName" ], meta[ "playlistName" ],
-                    meta[ "songName" ] );
+                string strFileName;
 
                 string [,] strReps = new string[,]
                 {
@@ -713,6 +725,18 @@ class SharpMusique
                     { "<", ""   }, { ">", ""  }, { "|", ""    }
                 };
 
+		if( song[ "metaData" ] != null ) {
+		       	meta = (Hashtable)song[ "metaData" ];
+	       	} else if( song[ "metadata" ] != null )	{
+		       	meta = (Hashtable)song[ "metadata" ];
+	       	} else {
+		       	meta = song;
+	       	}
+
+		strFileName = String.Format( "{0} - {1} - {2}.m4a",
+			meta[ "playlistArtistName" ], meta[ "playlistName" ],
+			meta[ "itemName" ] );
+
                 for( int i = 0; i < strReps.Length / 2; i++ )
                 {
                     strFileName = strFileName.Replace( strReps[ i, 0 ],
@@ -1168,7 +1192,7 @@ class SharpMusique
 
     private void ViewAlbumThread( object State )
     {
-        string strPlaylistId = (string)State;
+        string strPlaylistId = State.ToString();
 
         try
         {
