--- src/Core/Banshee.Core/Banshee.Streaming/StreamTagger.cs	2008-06-17 10:23:57.000000000 +0200
+++ src/Core/Banshee.Core/Banshee.Streaming/StreamTagger.cs	2008-06-17 22:22:57.000000000 +0200
@@ -134,6 +134,17 @@
                     }
                 } catch {}
             }
+
+	    TagLib.Id3v2.Tag tag = (TagLib.Id3v2.Tag) file.GetTag(TagLib.TagTypes.Id3v2);
+	    if (tag != null) {
+		foreach (TagLib.Id3v2.UserTextInformationFrame frame in tag.GetFrames("TXXX")) {
+		    if (frame.Description == "RATING") {
+		    	int rating;
+			System.Int32.TryParse(frame.FieldList.ToString(), out rating);
+			track.Rating = Choose((int) rating, track.Rating, preferTrackInfo);
+		    }
+		}
+	    }
         }
     
         public static void TrackInfoMerge (TrackInfo track, StreamTag tag)
--- src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseImportManager.cs	2008-06-17 10:23:55.000000000 +0200
+++ src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseImportManager.cs	2008-06-17 22:27:57.000000000 +0200
@@ -188,10 +188,10 @@
             try {
                 TagLib.File file = StreamTagger.ProcessUri (uri);
                 track = new DatabaseTrackInfo ();
+                track.PrimarySource = trackPrimarySourceChooser (track);
                 StreamTagger.TrackInfoMerge (track, file);
                 
                 track.DateAdded = DateTime.Now;
-                track.PrimarySource = trackPrimarySourceChooser (track);
 
                 if (track.PrimarySource is Banshee.Library.LibrarySource) {
                     track.CopyToLibraryIfAppropriate (force_copy);
